From b5b907bfca2a0e47d83ae6a0c8be581ea1993ee0 Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 23 Oct 2017 14:26:38 -0700 Subject: [PATCH 01/52] added test --- test/DelegationChain.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/DelegationChain.js b/test/DelegationChain.js index ead93d0..d3e2a21 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -148,4 +148,21 @@ describe('LiquidPledging test', function () { assert.equal(st.pledges[2].delegates.length, 1); assert.equal(st.pledges[2].delegates[0].id, 2); }); + + it('delegation chain should remain the same when owner veto\'s delegation', async () => { + // delegate1 add delegate2 to chain + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + // delegate2 delegate to project1 + await liquidPledging.transfer(3, 3, 1000, 5, {from: delegate2, $extraGas: 100000}); + // owner veto delegation to project1 + await liquidPledging.transfer(1, 8, 1000, 3, {from: giver1, $extraGas: 100000}); + + printState(liquidPledgingState); + const st = await liquidPledgingState.getState(); + assert.equal(st.pledges[8].amount, 0); + assert.equal(st.pledges[3].amount, 1000); + assert.equal(st.pledges[3].delegates.length, 2); + assert.equal(st.pledges[3].delegates[0].id, 2); + assert.equal(st.pledges[3].delegates[0].id, 3); + }) }); From 5d15fc6f6294d66ab3ac8bcef56ef1272d0bea28 Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 10 Nov 2017 08:39:58 -0800 Subject: [PATCH 02/52] preserve delegationChain on delegation veto --- contracts/LiquidPledging.sol | 27 +++++++++++++++++++++++++-- test/DelegationChain.js | 34 ++++++++++++++++++++++++++++------ 2 files changed, 53 insertions(+), 8 deletions(-) diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 0c72df7..f17a52e 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -81,8 +81,31 @@ contract LiquidPledging is LiquidPledgingBase { } else if (receiver.adminType == PledgeAdminType.Project) { transferOwnershipToProject(idPledge, amount, idReceiver); } else if (receiver.adminType == PledgeAdminType.Delegate) { - idPledge = undelegate(idPledge, amount, n.delegationChain.length); - appendDelegate(idPledge, amount, idReceiver); + + uint recieverDIdx = getDelegateIdx(n, idReceiver); + if (n.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == n.delegationChain.length - 1) { + uint64 toPledge = findOrCreatePledge( + n.owner, + n.delegationChain, + 0, + 0, + n.oldPledge, + PaymentState.Pledged); + doTransfer(idPledge, toPledge, amount); + } else { + undelegate(idPledge, amount, n.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is transferring pledge to a new delegate, so we want to reset + // the delegationChain + idPledge = undelegate(idPledge, amount, n.delegationChain.length); + appendDelegate(idPledge, amount, idReceiver); + } } else { assert(false); } diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 9cd5048..229e40c 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -181,19 +181,41 @@ describe('DelegationChain test', function () { }); it('delegation chain should remain the same when owner veto\'s delegation', async () => { - // delegate1 add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, { from: delegate1, $extraGas: 100000 }); - // delegate2 delegate to project1 - await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 100000 }); // owner veto delegation to project1 await liquidPledging.transfer(1, 8, 1000, 3, { from: giver1, $extraGas: 100000 }); - printState(liquidPledgingState); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[ 8 ].amount, 0); assert.equal(st.pledges[ 3 ].amount, 1000); assert.equal(st.pledges[ 3 ].delegates.length, 2); assert.equal(st.pledges[ 3 ].delegates[ 0 ].id, 2); - assert.equal(st.pledges[ 3 ].delegates[ 0 ].id, 3); + assert.equal(st.pledges[ 3 ].delegates[ 1 ].id, 3); + }); + + it('delegation chain should remain the same upto delegate of reciever when owner veto\'s delegation', async () => { + // propose project1 delegation + await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 100000 }); + // owner veto delegation to project1 and remove delegate2 + await liquidPledging.transfer(1, 8, 1000, 2, { from: giver1, $extraGas: 100000 }); + + const pledge = await liquidPledging.getPledge(2); + assert.equal(pledge.amount, 1000); + }); + + it('owner should be able to transfer pledge to a new delegate at any time', async () => { + // propose project1 delegation + await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1, $extraGas: 100000 }); + // owner veto delegation to project1 and assign new delgate + await liquidPledging.transfer(1, 9, 1000, 3, { from: giver1, $extraGas: 100000 }); + + const pledge = await liquidPledging.getPledge(10); + assert.equal(pledge.amount, 1000); + assert.equal(pledge.nDelegates, 1); + + // owner assign new delegate w/o vetoing intendedProject + await liquidPledging.transfer(1, 10, 1000, 2, { from: giver1, $extraGas: 100000 }); + const pledge2 = await liquidPledging.getPledge(2); + assert.equal(pledge2.amount, 1000); + await printState(liquidPledgingState); }); }); From 5df006a76fc1d3bb8bf73e6efb48401e5fd40243 Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 24 Nov 2017 08:21:07 -0800 Subject: [PATCH 03/52] Fix getProjectLevel bug fixes issue #48 --- contracts/LiquidPledgingBase.sol | 2 +- test/NormalOperation.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index b3630aa..8a0c647 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -351,7 +351,7 @@ contract LiquidPledgingBase is Owned { assert(m.adminType == PledgeAdminType.Project); if (m.parentProject == 0) return(1); PledgeAdmin storage parentNM = findAdmin(m.parentProject); - return getProjectLevel(parentNM); + return getProjectLevel(parentNM) + 1; } function isProjectCanceled(uint64 projectId) constant returns (bool) { diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 90ab7d6..65cb32d 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -334,4 +334,33 @@ describe('LiquidPledging test', function () { const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, utils.toDecimal(nAdminsBefore) + 1); }); + + it('should throw if projectLevel > 20', async () => { + let nAdmins = await liquidPledging.numberOfPledgeAdmins(); + + await liquidPledging.addProject('ProjectLevel1', '', adminProject1, 0, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel2', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel3', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel4', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel5', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel6', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel7', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel8', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel9', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel10', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel11', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel12', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel13', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel14', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel15', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel16', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel17', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel18', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel19', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel20', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + + assertFail(async () => { + await liquidPledging.addProject('ProjectLevel21', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + }); + }) }); From 41f0eeb155c13c017b039074abbdcaf19755aa87 Mon Sep 17 00:00:00 2001 From: perissology Date: Sun, 3 Dec 2017 06:53:12 -0800 Subject: [PATCH 04/52] make vault Escapable & add escapeFunds method --- contracts/LPVault.sol | 40 ++++++++++++---- contracts/Owned.sol | 41 ---------------- test/AdminPlugins.js | 2 +- test/CancelPledge.js | 2 +- test/DelegationChain.js | 2 +- test/NormalOperation.js | 2 +- test/NormalizePledge.js | 2 +- test/Vault.js | 100 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 135 insertions(+), 56 deletions(-) delete mode 100644 contracts/Owned.sol create mode 100644 test/Vault.js diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index 674447b..b2f4313 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -7,7 +7,7 @@ pragma solidity ^0.4.11; /// safety precaution, but once fully tested and optimized this contract will /// be a safe place to store funds equipped with optional variable time delays /// to allow for an optional escape hatch to be implemented -import "./Owned.sol"; +import "../node_modules/giveth-common-contracts/contracts/Escapable.sol"; /// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract /// to confirm and cancel payments in the `LiquidPledging` contract. @@ -17,9 +17,9 @@ contract LiquidPledging { } -/// @dev `LPVault` is a higher level contract built off of the `Owned` +/// @dev `LPVault` is a higher level contract built off of the `Escapable` /// contract that holds funds for the liquid pledging system. -contract LPVault is Owned { +contract LPVault is Escapable { LiquidPledging public liquidPledging; // liquidPledging contract's address bool public autoPay; // if false, payments will take 2 txs to be completed @@ -42,20 +42,18 @@ contract LPVault is Owned { // @dev An array that contains all the payments for this LPVault Payment[] public payments; + function Vault(address _escapeHatchCaller, address _escapeHatchDestination) + Escapable(_escapeHatchCaller, _escapeHatchDestination) public { + } + /// @dev `liquidPledging` is the only address that can call a function with /// this modifier modifier onlyLiquidPledging() { require(msg.sender == address(liquidPledging)); _; } - /// @dev USED FOR TESTING??? - function VaultMock() public pure { - } - - function () public payable { - - } + function () public payable {} /// @notice `setLiquidPledging` is used to attach a specific liquid pledging /// instance to this LPvault. Keep in mind this isn't a single pledge but @@ -176,7 +174,29 @@ contract LPVault is Owned { return payments.length; } + /// Transfer eth or tokens to the escapeHatchDestination. + /// Used as a safety mechanism to prevent the vault from holding too much value + /// before being thoroughly battle-tested. + /// @param _token to transfer, use 0x0 for ether + /// @param _amount to transfer + function escapeFunds(address _token, uint _amount) public onlyOwner { + /// @dev Logic for ether + if (_token == 0x0) { + require(this.balance >= _amount); + escapeHatchDestination.transfer(_amount); + EscapeHatchCalled(_token, _amount); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + uint balance = token.balanceOf(this); + require(balance >= _amount); + require(token.transfer(escapeHatchDestination, _amount)); + EscapeFundsCalled(_token, _amount); + } + event ConfirmPayment(uint indexed idPayment); event CancelPayment(uint indexed idPayment); event AuthorizePayment(uint indexed idPayment, bytes32 indexed ref, address indexed dest, uint amount); + event EscapeFundsCalled(address _token, uint _amount); } \ No newline at end of file diff --git a/contracts/Owned.sol b/contracts/Owned.sol deleted file mode 100644 index db1779c..0000000 --- a/contracts/Owned.sol +++ /dev/null @@ -1,41 +0,0 @@ -pragma solidity ^0.4.11; - - -/// @dev `Owned` is a base level contract that assigns an `owner` that can be -/// later changed -contract Owned { - - /// @dev `owner` is the only address that can call a function with this - /// modifier - modifier onlyOwner() { - require(msg.sender == owner); - _; - } - - address public owner; - - - /// @notice The Constructor assigns the account deploying the contract to be - /// the `owner` - function Owned() public { - owner = msg.sender; - } - - address public newOwner; - - /// @notice `owner` can step down and assign some other address to this role - /// but after this function is called the current owner still has ownership - /// powers in this contract; change of ownership is a 2 step process - /// @param _newOwner The address of the new owner. A simple contract with - /// the ability to accept ownership but the inability to do anything else - /// can be used to create an unowned contract to achieve decentralization - function changeOwner(address _newOwner) public onlyOwner { - newOwner = _newOwner; - } - - /// @notice `newOwner` can accept ownership over this contract - function acceptOwnership() public { - require(msg.sender == newOwner); - owner = newOwner; - } -} \ No newline at end of file diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index fe7f321..baa2d88 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -54,7 +54,7 @@ describe('LiquidPledging plugins test', function () { }); it('Should deploy LiquidPledging contract', async function() { - vault = await Vault.new(web3); + vault = await Vault.new(web3, accounts[0], accounts[1]); liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 6500000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); diff --git a/test/CancelPledge.js b/test/CancelPledge.js index 7ab3094..42fe794 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -51,7 +51,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await Vault.new(web3); + vault = await Vault.new(web3, accounts[0], accounts[1]); liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 2285284..a5d4598 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -57,7 +57,7 @@ describe('DelegationChain test', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await Vault.new(web3); + vault = await Vault.new(web3, accounts[0], accounts[1]); liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 8c29015..1a07cff 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -62,7 +62,7 @@ describe('LiquidPledging test', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await LPVault.new(web3); + vault = await LPVault.new(web3, accounts[0], accounts[1]); liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 08e97b2..80d96b3 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -57,7 +57,7 @@ describe('NormalizePledge test', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await Vault.new(web3); + vault = await Vault.new(web3, accounts[0], accounts[1]); liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); diff --git a/test/Vault.js b/test/Vault.js new file mode 100644 index 0000000..dcbe1f8 --- /dev/null +++ b/test/Vault.js @@ -0,0 +1,100 @@ +/* eslint-env mocha */ +/* eslint-disable no-await-in-loop */ +const TestRPC = require('ethereumjs-testrpc'); +const Web3 = require('web3'); +const chai = require('chai'); +const liquidpledging = require('../index.js'); +const assertFail = require('./helpers/assertFail'); + +const LiquidPledging = liquidpledging.LiquidPledgingMock; +const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const Vault = liquidpledging.Vault; +const assert = chai.assert; + +describe('Vault test', function () { + this.timeout(0); + + let testrpc; + let web3; + let accounts; + let liquidPledging; + let liquidPledgingState; + let vault; + let vaultOwner; + let escapeHatchCaller; + let escapeHatchDestination; + let giver1; + let adminProject1; + + before(async () => { + testrpc = TestRPC.server({ + ws: true, + gasLimit: 6500000, + total_accounts: 10, + }); + + testrpc.listen(8546, '127.0.0.1'); + + web3 = new Web3('ws://localhost:8546'); + accounts = await web3.eth.getAccounts(); + giver1 = accounts[ 1 ]; + adminProject1 = accounts[ 2 ]; + vaultOwner = accounts[ 3 ]; + escapeHatchDestination = accounts[ 4 ]; + escapeHatchCaller = accounts[ 5 ]; + }); + + after((done) => { + testrpc.close(); + done(); + }); + + it('Should deploy Vault contract', async function () { + vault = await Vault.new(web3, escapeHatchCaller, escapeHatchDestination, { from: vaultOwner }); + liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 6500000 }); + await vault.setLiquidPledging(liquidPledging.$address, { from: vaultOwner }); + liquidPledgingState = new LiquidPledgingState(liquidPledging); + + await liquidPledging.addGiver('Giver1', '', 0, '0x0', { from: giver1 }); + await liquidPledging.addProject('Project1', '', adminProject1, 0, 0, '0x0', { from: adminProject1 }); + + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(nAdmins, 2); + }); + + it('Should hold funds from liquidPledging', async function () { + await liquidPledging.donate(0, 2, { from: giver1, value: 10000 }); + + const balance = await web3.eth.getBalance(vault.$address); + assert.equal(10000, balance); + }); + + it('escapeFunds should fail', async function () { + // only vaultOwner can escapeFunds + await assertFail(async () => { + await vault.escapeFunds(0x0, 1000); + }); + + // can't send more then the balance + await assertFail(async () => { + await vault.escapeFunds(0x0, 11000, { from: vaultOwner }); + }); + }); + + it('escapeFunds should send funds to escapeHatchDestination', async function () { + const preBalance = await web3.eth.getBalance(escapeHatchDestination); + + await vault.escapeFunds(0x0, 1000, { from: vaultOwner }); + + const vaultBalance = await web3.eth.getBalance(vault.$address); + assert.equal(9000, vaultBalance); + + const expected = web3.utils.toBN(preBalance).add(web3.utils.toBN('1000')); + const postBalance = await web3.eth.getBalance(escapeHatchDestination); + + assert.equal(expected, postBalance); + }); + + it('should') +}); + From 56515bff1287bb6e12a5bcfdef3b6935237728b6 Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 4 Dec 2017 13:22:14 -0800 Subject: [PATCH 05/52] proposeAssignProject should check MAX_INTERPROJECT_LEVEL --- contracts/LiquidPledging.sol | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 906556a..7d3a05d 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -522,7 +522,7 @@ contract LiquidPledging is LiquidPledgingBase { ) internal { Pledge storage n = findPledge(idPledge); - require(getPledgeLevel(n) < MAX_SUBPROJECT_LEVEL); + require(getPledgeLevel(n) < MAX_INTERPROJECT_LEVEL); require(!isProjectCanceled(idReceiver)); uint64 toPledge = findOrCreatePledge( @@ -609,7 +609,7 @@ contract LiquidPledging is LiquidPledgingBase { n = findPledge(idPledge); } - toPledge = getOldestPledgeNotCanceled(idPledge);// TODO toPledge is pledge defined + toPledge = getOldestPledgeNotCanceled(idPledge); if (toPledge != idPledge) { doTransfer(idPledge, toPledge, n.amount); } @@ -738,11 +738,11 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer /// context and once for the receiving context. The aggregated /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occuring + /// @param before This toggle determines whether the plugin call is occurring /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. function callPlugins( bool before, uint64 fromPledge, From 49540b1eb7b91f2a0fda99489489260e63aa4830 Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 4 Dec 2017 16:59:43 -0800 Subject: [PATCH 06/52] update solcpiler --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 21c5ece..e8839ef 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "lerna": "^2.2.0", "random-bytes": "^1.0.0", "mocha": "^3.5.0", - "solcpiler": "0.0.7", + "solcpiler": "0.0.10", "web3": "1.0.0-beta.24" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", From 9cf0856e3d6ad96816aba48d9a4a4d2cf3d8cd5c Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 5 Dec 2017 11:58:20 -0800 Subject: [PATCH 07/52] make LiquidPledgingEscapable --- .soliumrc.json | 2 +- contracts/LPVault.sol | 12 ++++++++---- contracts/LiquidPledging.sol | 7 ++++++- contracts/LiquidPledgingBase.sol | 10 +++++++--- contracts/LiquidPledgingMock.sol | 6 +++++- test/AdminPlugins.js | 2 +- test/CancelPledge.js | 2 +- test/DelegationChain.js | 2 +- test/NormalOperation.js | 2 +- test/NormalizePledge.js | 2 +- test/Vault.js | 6 ++---- 11 files changed, 34 insertions(+), 19 deletions(-) diff --git a/.soliumrc.json b/.soliumrc.json index 09bb174..41a0a93 100644 --- a/.soliumrc.json +++ b/.soliumrc.json @@ -12,7 +12,7 @@ "no-with": true, "no-empty-blocks": true, "no-unused-vars": true, - "double-quotes": true, + "quotes": true, "blank-lines": true, "indentation": true, "whitespace": true, diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index b2f4313..186edac 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -7,7 +7,8 @@ pragma solidity ^0.4.11; /// safety precaution, but once fully tested and optimized this contract will /// be a safe place to store funds equipped with optional variable time delays /// to allow for an optional escape hatch to be implemented -import "../node_modules/giveth-common-contracts/contracts/Escapable.sol"; +import "giveth-common-contracts/contracts/Escapable.sol"; + /// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract /// to confirm and cancel payments in the `LiquidPledging` contract. @@ -42,8 +43,9 @@ contract LPVault is Escapable { // @dev An array that contains all the payments for this LPVault Payment[] public payments; - function Vault(address _escapeHatchCaller, address _escapeHatchDestination) - Escapable(_escapeHatchCaller, _escapeHatchDestination) public { + function LPVault(address _escapeHatchCaller, address _escapeHatchDestination) + Escapable(_escapeHatchCaller, _escapeHatchDestination) public + { } /// @dev `liquidPledging` is the only address that can call a function with @@ -82,7 +84,9 @@ contract LPVault is Escapable { function authorizePayment( bytes32 _ref, address _dest, - uint _amount ) public onlyLiquidPledging returns (uint) { + uint _amount + ) public onlyLiquidPledging returns (uint) + { uint idPayment = payments.length; payments.length ++; payments[idPayment].state = PaymentStatus.Pending; diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 7d3a05d..e7027eb 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -37,7 +37,12 @@ contract LiquidPledging is LiquidPledgingBase { /// @dev This constructor also calls the constructor /// for `LiquidPledgingBase` /// @param _vault The vault where ETH backing this pledge is stored - function LiquidPledging(address _vault) LiquidPledgingBase(_vault) { + function LiquidPledging( + address _vault, + address _escapeHatchCaller, + address _escapeHatchDestination + ) LiquidPledgingBase(_vault, _escapeHatchCaller, _escapeHatchDestination) { + } /// @notice This is how value enters into the system which creates pledges; diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 13bc059..071baa7 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -18,7 +18,7 @@ pragma solidity ^0.4.11; */ import "./ILiquidPledgingPlugin.sol"; -import "../node_modules/giveth-common-contracts/contracts/Owned.sol"; +import "giveth-common-contracts/contracts/Escapable.sol"; /// @dev `LPVault` serves as an interface to allow the `LiquidPledgingBase` /// contract to interface with a `LPVault` contract @@ -30,7 +30,7 @@ contract LPVault { /// @dev `LiquidPledgingBase` is the base level contract used to carry out /// liquid pledging's most basic functions, mostly handling and searching the /// data structures -contract LiquidPledgingBase is Owned { +contract LiquidPledgingBase is Escapable { // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 20; @@ -97,7 +97,11 @@ contract LiquidPledgingBase is Owned { /// @notice The Constructor creates `LiquidPledgingBase` on the blockchain /// @param _vault The vault where the ETH backing the pledges is stored - function LiquidPledgingBase(address _vault) { + function LiquidPledgingBase( + address _vault, + address _escapeHatchCaller, + address _escapeHatchDestination + ) Escapable(_escapeHatchCaller, _escapeHatchDestination) public { admins.length = 1; // we reserve the 0 admin pledges.length = 1; // we reserve the 0 pledge vault = LPVault(_vault); // Assigns the specified vault diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index ec6e07f..a9485f0 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -29,7 +29,11 @@ contract LiquidPledgingMock is LiquidPledging { /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` /// instance and sets the mocked time to the current blocktime. /// @param _vault The vault where ETH backing this pledge is stored - function LiquidPledgingMock(address _vault) LiquidPledging(_vault) { + function LiquidPledgingMock( + address _vault, + address _escapeHatchCaller, + address _escapeHatchDestination + ) LiquidPledging(_vault, _escapeHatchCaller, _escapeHatchDestination) { mock_time = now; } diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index baa2d88..39e5312 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -55,7 +55,7 @@ describe('LiquidPledging plugins test', function () { it('Should deploy LiquidPledging contract', async function() { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 6500000 }); + liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 6500000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/CancelPledge.js b/test/CancelPledge.js index 42fe794..84443e4 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -52,7 +52,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { it('Should deploy LiquidPledging contract', async () => { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index a5d4598..5e7268e 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -58,7 +58,7 @@ describe('DelegationChain test', function () { it('Should deploy LiquidPledging contract', async () => { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 1a07cff..fa42a7e 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -63,7 +63,7 @@ describe('LiquidPledging test', function () { it('Should deploy LiquidPledging contract', async () => { vault = await LPVault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 80d96b3..9d0cec9 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -58,7 +58,7 @@ describe('NormalizePledge test', function () { it('Should deploy LiquidPledging contract', async () => { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 5800000 }); + liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/Vault.js b/test/Vault.js index dcbe1f8..c1e8215 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -8,7 +8,7 @@ const assertFail = require('./helpers/assertFail'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const Vault = liquidpledging.Vault; +const Vault = liquidpledging.LPVault; const assert = chai.assert; describe('Vault test', function () { @@ -51,7 +51,7 @@ describe('Vault test', function () { it('Should deploy Vault contract', async function () { vault = await Vault.new(web3, escapeHatchCaller, escapeHatchDestination, { from: vaultOwner }); - liquidPledging = await LiquidPledging.new(web3, vault.$address, { gas: 6500000 }); + liquidPledging = await LiquidPledging.new(web3, vault.$address, escapeHatchCaller, escapeHatchDestination, { gas: 6500000 }); await vault.setLiquidPledging(liquidPledging.$address, { from: vaultOwner }); liquidPledgingState = new LiquidPledgingState(liquidPledging); @@ -94,7 +94,5 @@ describe('Vault test', function () { assert.equal(expected, postBalance); }); - - it('should') }); From 0687776b68ed43925203386a54d78b6750463588 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 5 Dec 2017 12:23:56 -0800 Subject: [PATCH 08/52] update comment --- contracts/LiquidPledging.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index f825287..6bf9f64 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -137,8 +137,8 @@ contract LiquidPledging is LiquidPledgingBase { undelegate(idPledge, amount, n.delegationChain.length - receiverDIdx - 1); } } else { - // owner is transferring pledge to a new delegate, so we want to reset - // the delegationChain + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain idPledge = undelegate(idPledge, amount, n.delegationChain.length); appendDelegate(idPledge, amount, idReceiver); } From 1beb06f172d38fec81d1fe521b046df0ed6aa8a5 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 5 Dec 2017 13:55:14 -0800 Subject: [PATCH 09/52] update coment --- contracts/LPVault.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index d6f00b2..c8b191a 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -25,7 +25,8 @@ pragma solidity ^0.4.11; /// this iteration the funds will come often be escaped to the Giveth Multisig /// (safety precaution), but once fully tested and optimized this contract will /// be a safe place to store funds equipped with optional variable time delays -/// to allow for an optional escape hatch to be implemented +/// to allow for an optional escapeHatch to be implemented in case of issues; +/// future versions of this contract will be enabled for tokens import "giveth-common-contracts/contracts/Escapable.sol"; /// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract From 5a1539bda8a04014adef09cf8b4c66045f3185c3 Mon Sep 17 00:00:00 2001 From: perissology Date: Wed, 6 Dec 2017 15:27:55 -0800 Subject: [PATCH 10/52] fix missing event after merge --- contracts/LPVault.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index c8b191a..4729086 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -217,6 +217,7 @@ contract LPVault is Escapable { } event AutoPaySet(); + event EscapeFundsCalled(address token, uint amount); event ConfirmPayment(uint indexed idPayment); event CancelPayment(uint indexed idPayment); event AuthorizePayment( From aa4750fa03eab1fc26848ee6a697e9f6f0942a32 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 19 Dec 2017 08:35:04 -1000 Subject: [PATCH 11/52] update vault events & limit delegates to 10 --- contracts/LPVault.sol | 8 ++++---- contracts/LiquidPledgingBase.sol | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index 4729086..d9cea8d 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -149,7 +149,7 @@ contract LPVault is Escapable { p.dest.transfer(p.amount); // Transfers ETH denominated in wei - ConfirmPayment(_idPayment); + ConfirmPayment(_idPayment, p.ref); } /// @notice When `autopay` is `false` and after a payment has been authorized @@ -170,7 +170,7 @@ contract LPVault is Escapable { liquidPledging.cancelPayment(uint64(p.ref), p.amount); - CancelPayment(_idPayment); + CancelPayment(_idPayment, p.ref); } @@ -218,8 +218,8 @@ contract LPVault is Escapable { event AutoPaySet(); event EscapeFundsCalled(address token, uint amount); - event ConfirmPayment(uint indexed idPayment); - event CancelPayment(uint indexed idPayment); + event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); + event CancelPayment(uint indexed idPayment, bytes32 indexed ref); event AuthorizePayment( uint indexed idPayment, bytes32 indexed ref, diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index ec24018..14c3835 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -35,7 +35,7 @@ interface LPVault { contract LiquidPledgingBase is Escapable { // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 20; + uint constant MAX_DELEGATES = 10; uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; From a6593d32b37f990355c090b8937aa62c2be74432 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 19 Dec 2017 16:56:26 -1000 Subject: [PATCH 12/52] remove print statement from test --- package.json | 2 +- test/DelegationChain.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index e8839ef..4638da6 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "liquidpledging", + "name": "giveth-liquidpledging", "version": "0.0.10", "description": "Liquid Pledging Smart Contract", "main": "index.js", diff --git a/test/DelegationChain.js b/test/DelegationChain.js index ac9249b..832146e 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -216,6 +216,5 @@ describe('DelegationChain test', function () { await liquidPledging.transfer(1, 10, 1000, 2, { from: giver1, $extraGas: 100000 }); const pledge2 = await liquidPledging.getPledge(2); assert.equal(pledge2.amount, 1000); - await printState(liquidPledgingState); }); }); From 80a8e5a9b4bed1a3515a8dae3618973531e0b124 Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 15 Jan 2018 14:36:17 -0800 Subject: [PATCH 13/52] fix solc warnings --- contracts/ILiquidPledgingPlugin.sol | 4 +-- contracts/LiquidPledging.sol | 30 ++++++++++---------- contracts/LiquidPledgingBase.sol | 44 +++++++++++++++-------------- 3 files changed, 40 insertions(+), 38 deletions(-) diff --git a/contracts/ILiquidPledgingPlugin.sol b/contracts/ILiquidPledgingPlugin.sol index ebe798f..ba7fdb6 100644 --- a/contracts/ILiquidPledgingPlugin.sol +++ b/contracts/ILiquidPledgingPlugin.sol @@ -49,7 +49,7 @@ contract ILiquidPledgingPlugin { uint64 pledgeFrom, uint64 pledgeTo, uint64 context, - uint amount ) returns (uint maxAllowed); + uint amount ) public returns (uint maxAllowed); /// @notice Plugins are used (much like web hooks) to initiate an action /// upon any donation, delegation, or transfer; this is an optional feature @@ -77,5 +77,5 @@ contract ILiquidPledgingPlugin { uint64 pledgeTo, uint64 context, uint amount - ); + ) public; } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 9da4497..a591fa5 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -41,7 +41,7 @@ contract LiquidPledging is LiquidPledgingBase { address _vault, address _escapeHatchCaller, address _escapeHatchDestination - ) LiquidPledgingBase(_vault, _escapeHatchCaller, _escapeHatchDestination) { + ) LiquidPledgingBase(_vault, _escapeHatchCaller, _escapeHatchDestination) public { } @@ -53,7 +53,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idGiver The id of the Giver donating; if 0, a new id is created /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver) payable { + function donate(uint64 idGiver, uint64 idReceiver) public payable { if (idGiver == 0) { // default to a 3 day (259200 seconds) commitTime @@ -98,7 +98,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idPledge, uint amount, uint64 idReceiver - ){ + ) public { idPledge = normalizePledge(idPledge); @@ -224,7 +224,7 @@ contract LiquidPledging is LiquidPledgingBase { /// intendedProject /// @param idPledge Id of the pledge that is to be redeemed into ether /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) { + function withdraw(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); // Updates pledge info Pledge storage p = findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); @@ -249,7 +249,7 @@ contract LiquidPledging is LiquidPledgingBase { /// from Paying to Paid /// @param idPledge Id of the pledge that is to be withdrawn /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) onlyVault { + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { Pledge storage p = findPledge(idPledge); require(p.pledgeState == PledgeState.Paying); @@ -270,7 +270,7 @@ contract LiquidPledging is LiquidPledgingBase { /// from Paying back to Pledged /// @param idPledge Id of the pledge that's withdraw is to be canceled /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) onlyVault { + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { Pledge storage p = findPledge(idPledge); require(p.pledgeState == PledgeState.Paying); //TODO change to revert???????????????????????????? @@ -292,7 +292,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice Changes the `project.canceled` flag to `true`; cannot be undone /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) { + function cancelProject(uint64 idProject) public { PledgeAdmin storage project = findAdmin(idProject); checkAdminOwner(project); project.canceled = true; @@ -305,7 +305,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that is to be canceled /// @param amount Quantity of ether (in wei) to be transfered to the /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) { + function cancelPledge(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); Pledge storage p = findPledge(idPledge); @@ -344,7 +344,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idSender, uint[] pledgesAmounts, uint64 idReceiver - ) { + ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); uint amount = pledgesAmounts[i] / D64; @@ -358,7 +358,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledgesAmounts An array of Pledge amounts and the idPledges with /// which the amounts are associated; these are extrapolated using the D64 /// bitmask - function mWithdraw(uint[] pledgesAmounts) { + function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); uint amount = pledgesAmounts[i] / D64; @@ -371,7 +371,7 @@ contract LiquidPledging is LiquidPledgingBase { /// efficiently /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) { + function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); uint amount = pledgesAmounts[i] / D64; @@ -384,7 +384,7 @@ contract LiquidPledging is LiquidPledgingBase { /// efficiently /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) { + function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); uint amount = pledgesAmounts[i] / D64; @@ -396,7 +396,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice `mNormalizePledge` allows for multiple pledges to be /// normalized efficiently /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) { + function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { normalizePledge( pledges[i] ); } @@ -601,7 +601,7 @@ contract LiquidPledging is LiquidPledgingBase { /// plugins, which also need to be predicted by the UI /// @param idPledge This is the id of the pledge that will be normalized /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) returns(uint64) { + function normalizePledge(uint64 idPledge) public returns(uint64) { Pledge storage p = findPledge(idPledge); @@ -800,7 +800,7 @@ contract LiquidPledging is LiquidPledgingBase { ///////////// /// @notice Basic helper function to return the current time - function getTime() internal returns (uint) { + function getTime() internal view returns (uint) { return now; } diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index b961a66..c911f4c 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -25,8 +25,8 @@ import "giveth-common-contracts/contracts/Escapable.sol"; /// the ETH that backs the Pledges, only after `LiquidPledging` authorizes /// payments can Pledges be converted for ETH interface LPVault { - function authorizePayment(bytes32 _ref, address _dest, uint _amount); - function () payable; + function authorizePayment(bytes32 _ref, address _dest, uint _amount) public; + function () public payable; } /// @dev `LiquidPledgingBase` is the base level contract used to carry out @@ -127,7 +127,7 @@ contract LiquidPledgingBase is Escapable { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) returns (uint64 idGiver) { + ) public returns (uint64 idGiver) { require(isValidPlugin(plugin)); // Plugin check @@ -162,7 +162,7 @@ contract LiquidPledgingBase is Escapable { address newAddr, string newName, string newUrl, - uint64 newCommitTime) + uint64 newCommitTime) public { PledgeAdmin storage giver = findAdmin(idGiver); require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver @@ -191,7 +191,7 @@ contract LiquidPledgingBase is Escapable { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) returns (uint64 idDelegate) { + ) public returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -228,7 +228,8 @@ contract LiquidPledgingBase is Escapable { address newAddr, string newName, string newUrl, - uint64 newCommitTime) { + uint64 newCommitTime) public + { PledgeAdmin storage delegate = findAdmin(idDelegate); require(delegate.adminType == PledgeAdminType.Delegate); require(delegate.addr == msg.sender);// Current addr had to send this tx @@ -260,7 +261,8 @@ contract LiquidPledgingBase is Escapable { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) returns (uint64 idProject) { + ) public returns (uint64 idProject) + { require(isValidPlugin(plugin)); if (parentProject != 0) { @@ -303,7 +305,7 @@ contract LiquidPledgingBase is Escapable { address newAddr, string newName, string newUrl, - uint64 newCommitTime) + uint64 newCommitTime) public { PledgeAdmin storage project = findAdmin(idProject); require(project.adminType == PledgeAdminType.Project); @@ -324,7 +326,7 @@ contract LiquidPledgingBase is Escapable { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() constant returns (uint) { + function numberOfPledges() public constant returns (uint) { return pledges.length - 1; } @@ -333,7 +335,7 @@ contract LiquidPledgingBase is Escapable { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) constant returns( + function getPledge(uint64 idPledge) public constant returns( uint amount, uint64 owner, uint64 nDelegates, @@ -355,7 +357,7 @@ contract LiquidPledgingBase is Escapable { /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint idxDelegate) constant returns( + function getPledgeDelegate(uint64 idPledge, uint idxDelegate) public constant returns( uint64 idDelegate, address addr, string name @@ -369,7 +371,7 @@ contract LiquidPledgingBase is Escapable { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() constant returns(uint) { + function numberOfPledgeAdmins() public constant returns(uint) { return admins.length - 1; } @@ -386,7 +388,7 @@ contract LiquidPledgingBase is Escapable { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) constant returns ( + function getPledgeAdmin(uint64 idAdmin) public constant returns ( PledgeAdminType adminType, address addr, string name, @@ -436,7 +438,7 @@ contract LiquidPledgingBase is Escapable { PledgeState state ) internal returns (uint64) { - bytes32 hPledge = sha3( + bytes32 hPledge = keccak256( owner, delegationChain, intendedProject, commitTime, oldPledge, state); uint64 idx = hPledge2idx[hPledge]; if (idx > 0) return idx; @@ -450,7 +452,7 @@ contract LiquidPledgingBase is Escapable { /// @notice A getter to look up a Admin's details /// @param idAdmin The id for the Admin to lookup /// @return The PledgeAdmin struct for the specified Admin - function findAdmin(uint64 idAdmin) internal returns (PledgeAdmin storage) { + function findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { require(idAdmin < admins.length); return admins[idAdmin]; } @@ -458,7 +460,7 @@ contract LiquidPledgingBase is Escapable { /// @notice A getter to look up a Pledge's details /// @param idPledge The id for the Pledge to lookup /// @return The PledgeA struct for the specified Pledge - function findPledge(uint64 idPledge) internal returns (Pledge storage) { + function findPledge(uint64 idPledge) internal view returns (Pledge storage) { require(idPledge < pledges.length); return pledges[idPledge]; } @@ -474,7 +476,7 @@ contract LiquidPledgingBase is Escapable { /// `admins` array index `idDelegate` this returns that delegates /// corresponding index in the delegationChain. Otherwise it returns /// the NOTFOUND constant - function getDelegateIdx(Pledge p, uint64 idDelegate) internal returns(uint64) { + function getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { for (uint i=0; i < p.delegationChain.length; i++) { if (p.delegationChain[i] == idDelegate) return uint64(i); } @@ -495,7 +497,7 @@ contract LiquidPledgingBase is Escapable { /// the delegates for a specified pledge /// @param p The Pledge being queried /// @return The maximum commitTime out of the owner and all the delegates - function maxCommitTime(Pledge p) internal returns(uint commitTime) { + function maxCommitTime(Pledge p) internal view returns(uint commitTime) { PledgeAdmin storage m = findAdmin(p.owner); commitTime = m.commitTime; // start with the owner's commitTime @@ -521,7 +523,7 @@ contract LiquidPledgingBase is Escapable { /// @notice A getter to find if a specified Project has been canceled /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) constant returns (bool) { + function isProjectCanceled(uint64 projectId) public constant returns (bool) { PledgeAdmin storage m = findAdmin(projectId); if (m.adminType == PledgeAdminType.Giver) return false; assert(m.adminType == PledgeAdminType.Project); @@ -569,7 +571,7 @@ contract LiquidPledgingBase is Escapable { usePluginWhitelist = useWhitelist; } - function isValidPlugin(address addr) public returns(bool) { + function isValidPlugin(address addr) public view returns(bool) { if (!usePluginWhitelist || addr == 0x0) return true; bytes32 contractHash = getCodeHash(addr); @@ -577,7 +579,7 @@ contract LiquidPledgingBase is Escapable { return pluginWhitelist[contractHash]; } - function getCodeHash(address addr) public returns(bytes32) { + function getCodeHash(address addr) public view returns(bytes32) { bytes memory o_code; assembly { // retrieve the size of the code, this needs assembly From 80b8ffc2ef4f3696be9d53197532652ddf0ed5fc Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 16 Jan 2018 17:20:07 -0800 Subject: [PATCH 14/52] refactor PledgeAdmins to lib w/ EternalStorage --- contracts/EternalStorage.sol | 92 ++++++ contracts/EternallyPersistentLib.sol | 176 ++++++++++++ contracts/LiquidPledging.sol | 90 +++--- contracts/LiquidPledgingBase.sol | 359 ++++++++--------------- contracts/PledgeAdmins.sol | 411 +++++++++++++++++++++++++++ js/eternalStorage.js | 6 + 6 files changed, 847 insertions(+), 287 deletions(-) create mode 100644 contracts/EternalStorage.sol create mode 100644 contracts/EternallyPersistentLib.sol create mode 100644 contracts/PledgeAdmins.sol create mode 100644 js/eternalStorage.js diff --git a/contracts/EternalStorage.sol b/contracts/EternalStorage.sol new file mode 100644 index 0000000..eb93ad3 --- /dev/null +++ b/contracts/EternalStorage.sol @@ -0,0 +1,92 @@ +pragma solidity ^0.4.0; + +// change to Escapable +import "node_modules/giveth-common-contracts/contracts/Owned.sol"; + +contract EternalStorage is Owned { + + mapping(bytes32 => uint) UIntStorage; + mapping(bytes32 => int) IntStorage; + mapping(bytes32 => bool) BooleanStorage; + mapping(bytes32 => address) AddressStorage; + mapping(bytes32 => string) StringStorage; + mapping(bytes32 => bytes) BytesStorage; + mapping(bytes32 => bytes32) Bytes32Storage; + + /// UInt Storage + + function getUIntValue(bytes32 record) public view returns (uint) { + return UIntStorage[record]; + } + + function setUIntValue(bytes32 record, uint value) public onlyOwner + { + UIntStorage[record] = value; + } + + /// Int Storage + + function getIntValue(bytes32 record) public view returns (int){ + return IntStorage[record]; + } + + function setIntValue(bytes32 record, int value) public onlyOwner + { + IntStorage[record] = value; + } + + /// Address Storage + + function getAddressValue(bytes32 record) public view returns (address){ + return AddressStorage[record]; + } + + function setAddressValue(bytes32 record, address value) public onlyOwner + { + AddressStorage[record] = value; + } + + /// String Storage + + function getStringValue(bytes32 record) public view returns (string){ + return StringStorage[record]; + } + + function setStringValue(bytes32 record, string value) public onlyOwner + { + StringStorage[record] = value; + } + + /// Bytes Storage + + function getBytesValue(bytes32 record) public view returns (bytes){ + return BytesStorage[record]; + } + + function setBytesValue(bytes32 record, bytes value) public onlyOwner + { + BytesStorage[record] = value; + } + + /// Bytes Storage + + function getBytes32Value(bytes32 record) public view returns (bytes32){ + return Bytes32Storage[record]; + } + + function setBytes32Value(bytes32 record, bytes32 value) public onlyOwner + { + Bytes32Storage[record] = value; + } + + /// Boolean Storage + + function getBooleanValue(bytes32 record) public view returns (bool){ + return BooleanStorage[record]; + } + + function setBooleanValue(bytes32 record, bool value) public onlyOwner + { + BooleanStorage[record] = value; + } +} diff --git a/contracts/EternallyPersistentLib.sol b/contracts/EternallyPersistentLib.sol new file mode 100644 index 0000000..fa425f8 --- /dev/null +++ b/contracts/EternallyPersistentLib.sol @@ -0,0 +1,176 @@ +pragma solidity ^0.4.0; + +import "./EternalStorage.sol"; + +library EternallyPersistentLib { + + // UInt + + function stgObjectGetUInt(EternalStorage _storage, string class, uint id, string fieldName) public view returns (uint) { + bytes32 record = keccak256(class, id, fieldName); + return _storage.getUIntValue(record); + } + + function stgObjectSetUInt(EternalStorage _storage, string class, uint id, string fieldName, uint value) internal { + bytes32 record = keccak256(class, id, fieldName); + return _storage.setUIntValue(record, value); + } + + // Boolean + + function stgObjectGetBoolean(EternalStorage _storage, string class, uint id, string fieldName) public view returns (bool) { + bytes32 record = keccak256(class, id, fieldName); + return _storage.getBooleanValue(record); + } + + function stgObjectSetBoolean(EternalStorage _storage, string class, uint id, string fieldName, bool value) internal { + bytes32 record = keccak256(class, id, fieldName); + return _storage.setBooleanValue(record, value); + } + + // string + + function stgObjectGetString(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (string) { + bytes32 record = keccak256(class, id, fieldName); + bytes4 sig = bytes4(keccak256("getStringValue(bytes32)")); + //Function signature + address a = address(_storage); + string memory s; + + assembly { + let x := mload(0x40) //Find empty storage location using "free memory pointer" + mstore(x, sig) //Place signature at begining of empty storage + mstore(add(x, 0x04), record) //Place first argument directly next to signature + + let success := call(//This is the critical change (Pop the top stack value) + 5000, //5k gas + a, //To addr + 0, //No value + x, //Inputs are stored at location x + 0x24, //Inputs are 36 byes long + x, //Store output over input (saves space) + 0x80) //Outputs are 32 bytes long + + let strL := mload(add(x, 0x20)) // Load the length of the sring + + jumpi(ask_more, gt(strL, 64)) + + mstore(0x40, add(x, add(strL, 0x40))) + + s := add(x, 0x20) + // return(x, add(strL, 0x40)) + ask_more : + mstore(x, sig) //Place signature at begining of empty storage + mstore(add(x, 0x04), record) //Place first argument directly next to signature + + success := call(//This is the critical change (Pop the top stack value) + 5000, //5k gas + a, //To addr + 0, //No value + x, //Inputs are stored at location x + 0x24, //Inputs are 36 byes long + x, //Store output over input (saves space) + add(0x40, strL)) //Outputs are 32 bytes long + + mstore(0x40, add(x, add(strL, 0x40))) + s := add(x, 0x20) + + // return(x, add(strL, 0x40)) + } + + return s; + } + + function stgObjectSetString(EternalStorage _storage, string class, uint id, string fieldName, string value) internal { + bytes32 record = keccak256(class, id, fieldName); + return _storage.setStringValue(record, value); + } + + // address + + function stgObjectGetAddress(EternalStorage _storage, string class, uint id, string fieldName) public view returns (address) { + bytes32 record = keccak256(class, id, fieldName); + return _storage.getAddressValue(record); + } + + function stgObjectSetAddress(EternalStorage _storage, string class, uint id, string fieldName, address value) internal { + bytes32 record = keccak256(class, id, fieldName); + return _storage.setAddressValue(record, value); + } + + // bytes32 + + function stgObjectGetBytes32(EternalStorage _storage, string class, uint id, string fieldName) public view returns (bytes32) { + bytes32 record = keccak256(class, id, fieldName); + return _storage.getBytes32Value(record); + } + + function stgObjectSetBytes32(EternalStorage _storage, string class, uint id, string fieldName, bytes32 value) internal { + bytes32 record = keccak256(class, id, fieldName); + return _storage.setBytes32Value(record, value); + } + + // Array + +// function stgCollectionAddItem(bytes32 idArray, bytes32 idItem) internal returns (uint64) { + function stgCollectionAddItem(EternalStorage _storage, bytes32 idArray) internal returns (uint) { + + uint length = _storage.getUIntValue(keccak256(idArray, "length")); + + + // Set the position in the array as a field so it can be deleted +// _storage.setUIntValue(keccak256(idArray, idItem, "_idx"), length); + + // Add the object to the array +// _storage.setBytes32Value(keccak256(idArray, length), idItem); + + + // Increment the size of the array + length++; + _storage.setUIntValue(keccak256(idArray, "length"), length); + + return length; + } + +// function stgCollectionRemoveItem(EternalStorage _storage, bytes32 idArray, bytes32 idItem) internal { +// uint idx = _storage.getUIntValue(keccak256(idArray, idItem, "_idx")); +// +// uint length = _storage.getUIntValue(keccak256(idArray, "length")); +// length --; +// +// // Move the last element ot the array to this place +// bytes32 lastId = _storage.getBytes32Value(keccak256(idArray, length)); +// _storage.setBytes32Value(keccak256(idArray, idx), lastId); +// _storage.setUIntValue(keccak256(idArray, lastId, "_idx"), idx); +// +// +// // Decrement the length +// _storage.setUIntValue(keccak256(idArray, "length"), length); +// +// // Cleanup the last element of the array +// _storage.setBytes32Value(keccak256(idArray, length), 0); +// +// _storage.setUIntValue(keccak256(idArray, idItem, "_idx"), 0); +// } + + function stgCollectionLength(EternalStorage _storage, bytes32 idArray) public view returns (uint) { + return _storage.getUIntValue(keccak256(idArray, "length")); + } + + function stgCollectionIdFromIdx(EternalStorage _storage, bytes32 idArray, uint idx) public view returns (bytes32) { + return _storage.getBytes32Value(keccak256(idArray, idx)); + } + + +// bytes32 lastId; + +// function stgGetNewId() internal returns (bytes32) { +// lastId = keccak256(lastId, now); +// return lastId; +// } + + function stgUpgrade(EternalStorage _storage, address newContract) internal { + _storage.changeOwnership(newContract); + } + +} \ No newline at end of file diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index a591fa5..076af86 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -38,13 +38,15 @@ contract LiquidPledging is LiquidPledgingBase { /// for `LiquidPledgingBase` /// @param _vault The vault where ETH backing this pledge is stored function LiquidPledging( + address _storage, address _vault, address _escapeHatchCaller, address _escapeHatchDestination - ) LiquidPledgingBase(_vault, _escapeHatchCaller, _escapeHatchDestination) public { - + ) LiquidPledgingBase(_storage, _vault, _escapeHatchCaller, _escapeHatchDestination) public + { } + event Name(string name); /// @notice This is how value enters the system and how pledges are created; /// the ether is sent to the vault, an pledge for the Giver is created (or /// found), the amount of ETH donated in wei is added to the `amount` in @@ -57,15 +59,23 @@ contract LiquidPledging is LiquidPledgingBase { if (idGiver == 0) { // default to a 3 day (259200 seconds) commitTime - idGiver = addGiver("", "", 259200, ILiquidPledgingPlugin(0x0)); + idGiver = uint64(addGiver("", "", 259200, ILiquidPledgingPlugin(0x0))); } - PledgeAdmin storage sender = findAdmin(idGiver); - checkAdminOwner(sender); - require(sender.adminType == PledgeAdminType.Giver); + checkAdminOwner(idGiver); + + PledgeAdmins.PledgeAdminType adminType = _storage.getAdminType(idGiver); + require(adminType == PledgeAdmins.PledgeAdminType.Giver); + + Gas(msg.gas); + _storage.getAdmin(idGiver); + Gas(msg.gas); + return; + uint amount = msg.value; require(amount > 0); vault.transfer(amount); // Sends the `msg.value` (in wei) to the `vault` + uint64 idPledge = findOrCreatePledge( idGiver, new uint64[](0), // Creates empty array for delegationChain @@ -84,7 +94,7 @@ contract LiquidPledging is LiquidPledgingBase { transfer(idGiver, idPledge, amount, idReceiver); // LP accounting } - /// @notice Transfers amounts between pledges for internal accounting + /// @notice Transfers amounts between pledges for internal accounting /// @param idSender Id of the Admin that is transferring the amount from /// Pledge to Pledge; this admin must have permissions to move the value /// @param idPledge Id of the pledge that's moving the value @@ -99,24 +109,23 @@ contract LiquidPledging is LiquidPledgingBase { uint amount, uint64 idReceiver ) public { + checkAdminOwner(idSender); idPledge = normalizePledge(idPledge); Pledge storage p = findPledge(idPledge); - PledgeAdmin storage receiver = findAdmin(idReceiver); - PledgeAdmin storage sender = findAdmin(idSender); + PledgeAdmins.PledgeAdminType receiverAdminType = _storage.getAdminType(idReceiver); - checkAdminOwner(sender); require(p.pledgeState == PledgeState.Pledged); // If the sender is the owner of the Pledge if (p.owner == idSender) { - if (receiver.adminType == PledgeAdminType.Giver) { + if (receiverAdminType == PledgeAdmins.PledgeAdminType.Giver) { transferOwnershipToGiver(idPledge, amount, idReceiver); - } else if (receiver.adminType == PledgeAdminType.Project) { + } else if (receiverAdminType == PledgeAdmins.PledgeAdminType.Project) { transferOwnershipToProject(idPledge, amount, idReceiver); - } else if (receiver.adminType == PledgeAdminType.Delegate) { + } else if (receiverAdminType == PledgeAdmins.PledgeAdminType.Delegate) { uint recieverDIdx = getDelegateIdx(p, idReceiver); if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { @@ -146,7 +155,7 @@ contract LiquidPledging is LiquidPledgingBase { ); appendDelegate(idPledge, amount, idReceiver); } - + } else { // This should never be reached as the reciever.adminType // should always be either a Giver, Project, or Delegate @@ -160,7 +169,7 @@ contract LiquidPledging is LiquidPledgingBase { if (senderDIdx != NOTFOUND) { // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { + if (receiverAdminType == PledgeAdmins.PledgeAdminType.Giver) { // Only transfer to the Giver who owns the pldege assert(p.owner == idReceiver); undelegate(idPledge, amount, p.delegationChain.length); @@ -168,7 +177,7 @@ contract LiquidPledging is LiquidPledgingBase { } // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { + if (receiverAdminType == PledgeAdmins.PledgeAdminType.Delegate) { uint receiverDIdx = getDelegateIdx(p, idReceiver); // And not in the delegationChain @@ -193,8 +202,8 @@ contract LiquidPledging is LiquidPledgingBase { // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? undelegate( idPledge, amount, @@ -206,7 +215,7 @@ contract LiquidPledging is LiquidPledgingBase { // And the receiver is a Project, all the delegates after the sender // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { + if (receiverAdminType == PledgeAdmins.PledgeAdminType.Project) { idPledge = undelegate( idPledge, amount, @@ -216,7 +225,7 @@ contract LiquidPledging is LiquidPledgingBase { return; } } - assert(false); // When the sender is not an owner or a delegate + assert(false); // When the sender is not an owner or a delegate } /// @notice Authorizes a payment be made from the `vault` can be used by the @@ -228,8 +237,7 @@ contract LiquidPledging is LiquidPledgingBase { idPledge = normalizePledge(idPledge); // Updates pledge info Pledge storage p = findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - PledgeAdmin storage owner = findAdmin(p.owner); - checkAdminOwner(owner); + checkAdminOwner(p.owner); uint64 idNewPledge = findOrCreatePledge( p.owner, @@ -242,7 +250,7 @@ contract LiquidPledging is LiquidPledgingBase { doTransfer(idPledge, idNewPledge, amount); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, amount); + vault.authorizePayment(bytes32(idNewPledge), _storage.getAdminAddr(p.owner), amount); } /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState @@ -293,11 +301,8 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice Changes the `project.canceled` flag to `true`; cannot be undone /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = findAdmin(idProject); - checkAdminOwner(project); - project.canceled = true; - - CancelProject(idProject); + checkAdminOwner(idProject); + _storage.cancelProject(idProject); } /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that @@ -311,8 +316,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = findPledge(idPledge); require(p.oldPledge != 0); - PledgeAdmin storage m = findAdmin(p.owner); - checkAdminOwner(m); + checkAdminOwner(p.owner); uint64 oldPledge = getOldestPledgeNotCanceled(p.oldPledge); doTransfer(idPledge, oldPledge, amount); @@ -422,7 +426,7 @@ contract LiquidPledging is LiquidPledgingBase { // Ensure that the pledge is not already at max pledge depth // and the project has not been canceled require(getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); + require(!_storage.isProjectCanceled(idReceiver)); uint64 oldPledge = findOrCreatePledge( p.owner, @@ -548,7 +552,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = findPledge(idPledge); require(getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); + require(!_storage.isProjectCanceled(idReceiver)); uint64 toPledge = findOrCreatePledge( p.owner, @@ -568,7 +572,8 @@ contract LiquidPledging is LiquidPledgingBase { /// @param _amount The amount of value that will be transfered. function doTransfer(uint64 from, uint64 to, uint _amount) internal { uint amount = callPlugins(true, from, to, _amount); - if (from == to) { +// uint amount = _amount; + if (from == to) { return; } if (amount == 0) { @@ -581,7 +586,7 @@ contract LiquidPledging is LiquidPledgingBase { nTo.amount += amount; Transfer(from, to, amount); - callPlugins(false, from, to, amount); +// callPlugins(false, from, to, amount); } /// @notice Only affects pledges with the Pledged PledgeState for 2 things: @@ -671,13 +676,14 @@ contract LiquidPledging is LiquidPledgingBase { uint newAmount; allowedAmount = amount; - PledgeAdmin storage admin = findAdmin(adminId); + address plugin = _storage.getAdminPlugin(adminId); // this takes ~10000 gas + // Checks admin has a plugin assigned and a non-zero amount is requested - if ((address(admin.plugin) != 0) && (allowedAmount > 0)) { + if (plugin != 0 && allowedAmount > 0) { // There are two seperate functions called in the plugin. // One is called before the transfer and one after if (before) { - newAmount = admin.plugin.beforeTransfer( + newAmount = ILiquidPledgingPlugin(plugin).beforeTransfer( adminId, fromPledge, toPledge, @@ -687,7 +693,7 @@ contract LiquidPledging is LiquidPledgingBase { require(newAmount <= allowedAmount); allowedAmount = newAmount; } else { - admin.plugin.afterTransfer( + ILiquidPledgingPlugin(plugin).afterTransfer( adminId, fromPledge, toPledge, @@ -722,6 +728,10 @@ contract LiquidPledging is LiquidPledgingBase { allowedAmount = amount; Pledge storage p = findPledge(idPledge); + // TODO I think we can remove these check b/c the admins array only grows, thus if adminId is out of index, it will just return 0x0 & skip the plugin call +// uint adminsSize = _storage.pledgeAdminsCount(); +// require(adminsSize >= p.owner); + // Always call the plugin on the owner allowedAmount = callPlugin( before, @@ -734,6 +744,7 @@ contract LiquidPledging is LiquidPledgingBase { // Apply call plugin to all delegates for (uint64 i=0; i= p.delegationChain[i]); allowedAmount = callPlugin( before, p.delegationChain[i], @@ -748,6 +759,7 @@ contract LiquidPledging is LiquidPledgingBase { // either a transferring or receiving context based on offset // on the intended project if (p.intendedProject > 0) { +// require(adminsSize >= p.intendedProject); allowedAmount = callPlugin( before, p.intendedProject, @@ -806,6 +818,6 @@ contract LiquidPledging is LiquidPledgingBase { // Event Delcerations event Transfer(uint64 indexed from, uint64 indexed to, uint amount); - event CancelProject(uint64 indexed idProject); + event CancelProject(uint indexed idProject); } diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index c911f4c..ac2d649 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -20,6 +20,8 @@ pragma solidity ^0.4.11; import "./ILiquidPledgingPlugin.sol"; import "giveth-common-contracts/contracts/Escapable.sol"; +import "./PledgeAdmins.sol"; +import "./EternalStorage.sol"; /// @dev This is an interface for `LPVault` which serves as a secure storage for /// the ETH that backs the Pledges, only after `LiquidPledging` authorizes @@ -33,53 +35,50 @@ interface LPVault { /// liquidPledging's most basic functions, mostly handling and searching the /// data structures contract LiquidPledgingBase is Escapable { + using PledgeAdmins for EternalStorage; // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 10; uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; - enum PledgeAdminType { Giver, Delegate, Project } enum PledgeState { Pledged, Paying, Paid } - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - string name; - string url; // Can be IPFS hash - uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - } - struct Pledge { uint amount; uint64 owner; // PledgeAdmin uint64[] delegationChain; // List of delegates in order of authority uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner + uint64 commitTime; // When the intendedProject will become the owner uint64 oldPledge; // Points to the id that this Pledge was derived from PledgeState pledgeState; // Pledged, Paying, Paid } + EternalStorage public _storage; Pledge[] pledges; - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - LPVault public vault; - /// @dev this mapping allows you to search for a specific pledge's + /// @dev this mapping allows you to search for a specific pledge's /// index number by the hash of that pledge mapping (bytes32 => uint64) hPledge2idx; + + + LPVault public vault; + mapping (bytes32 => bool) pluginWhitelist; - + bool public usePluginWhitelist = true; + // Duplicate Events from libs so they are added to the abi + event GiverAdded(uint indexed idGiver); + event GiverUpdated(uint indexed idGiver); + event DelegateAdded(uint indexed idDelegate); + event DelegateUpdated(uint indexed idDelegate); + event ProjectAdded(uint indexed idProject); + event ProjectUpdated(uint indexed idProject); + + // for testing + event Gas(uint remainingGas); + ///////////// // Modifiers ///////////// @@ -100,12 +99,12 @@ contract LiquidPledgingBase is Escapable { /// @notice The Constructor creates `LiquidPledgingBase` on the blockchain /// @param _vault The vault where the ETH backing the pledges is stored function LiquidPledgingBase( + address _storageAddr, address _vault, address _escapeHatchCaller, address _escapeHatchDestination ) Escapable(_escapeHatchCaller, _escapeHatchDestination) public { - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge + _storage = EternalStorage(_storageAddr); vault = LPVault(_vault); // Assigns the specified vault } @@ -114,146 +113,73 @@ contract LiquidPledgingBase is Escapable { // PledgeAdmin functions ///////////////////////// - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin function addGiver( string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) { - + ) public returns (uint idGiver) { require(isValidPlugin(plugin)); // Plugin check - idGiver = uint64(admins.length); - - admins.push(PledgeAdmin( - PledgeAdminType.Giver, - msg.sender, + return _storage.addGiver( name, url, commitTime, - 0, - false, - plugin)); - - GiverAdded(idGiver); + plugin + ); } - event GiverAdded(uint64 indexed idGiver); - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project function updateGiver( uint64 idGiver, address newAddr, string newName, string newUrl, - uint64 newCommitTime) public + uint64 newCommitTime + ) public { - PledgeAdmin storage giver = findAdmin(idGiver); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - require(giver.addr == msg.sender); // Current addr had to send this tx - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + _storage.updateGiver( + idGiver, + newAddr, + newName, + newUrl, + newCommitTime + ); } - event GiverUpdated(uint64 indexed idGiver); - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the admins array function addDelegate( string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) { - + ) public returns (uint64 idDelegate) + { require(isValidPlugin(plugin)); // Plugin check - idDelegate = uint64(admins.length); - - admins.push(PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, + return uint64(_storage.addDelegate( name, url, commitTime, - 0, - false, - plugin)); - - DelegateAdded(idDelegate); + plugin + )); } - event DelegateAdded(uint64 indexed idDelegate); - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. function updateDelegate( uint64 idDelegate, address newAddr, string newName, string newUrl, - uint64 newCommitTime) public + uint64 newCommitTime + ) public { - PledgeAdmin storage delegate = findAdmin(idDelegate); - require(delegate.adminType == PledgeAdminType.Delegate); - require(delegate.addr == msg.sender);// Current addr had to send this tx - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + _storage.updateDelegate( + idDelegate, + newAddr, + newName, + newUrl, + newCommitTime + ); } - event DelegateUpdated(uint64 indexed idDelegate); - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin function addProject( string name, string url, @@ -266,59 +192,37 @@ contract LiquidPledgingBase is Escapable { require(isValidPlugin(plugin)); if (parentProject != 0) { - PledgeAdmin storage pa = findAdmin(parentProject); - require(pa.adminType == PledgeAdminType.Project); - require(getProjectLevel(pa) < MAX_SUBPROJECT_LEVEL); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_storage.getProjectLevel(parentProject) < MAX_SUBPROJECT_LEVEL); } - idProject = uint64(admins.length); - - admins.push(PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - name, - url, - commitTime, - parentProject, - false, - plugin)); - - - ProjectAdded(idProject); + return uint64(_storage.addProject( + name, + url, + projectAdmin, + parentProject, + commitTime, + plugin + )); } - event ProjectAdded(uint64 indexed idProject); - - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project function updateProject( uint64 idProject, address newAddr, string newName, string newUrl, - uint64 newCommitTime) public + uint64 newCommitTime + ) public { - PledgeAdmin storage project = findAdmin(idProject); - require(project.adminType == PledgeAdminType.Project); - require(project.addr == msg.sender); - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - ProjectUpdated(idProject); + _storage.updateProject( + idProject, + newAddr, + newName, + newUrl, + newCommitTime + ); } - event ProjectUpdated(uint64 indexed idAdmin); - ////////// // Public constant functions @@ -357,57 +261,37 @@ contract LiquidPledgingBase is Escapable { /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint idxDelegate) public constant returns( + function getPledgeDelegate(uint64 idPledge, uint idxDelegate) public view returns( uint64 idDelegate, address addr, string name ) { Pledge storage p = findPledge(idPledge); idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; + require(_storage.pledgeAdminsCount() >= idxDelegate); + addr = _storage.getAdminAddr(idDelegate); + name = _storage.getAdminName(idDelegate); } /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { - return admins.length - 1; - } +// function numberOfPledgeAdmins() public constant returns(uint) { +// return _storage.pledgeAdminsCount(); +// } - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public constant returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin) - { - PledgeAdmin storage m = findAdmin(idAdmin); - adminType = m.adminType; - addr = m.addr; - name = m.name; - url = m.url; - commitTime = m.commitTime; - parentProject = m.parentProject; - canceled = m.canceled; - plugin = address(m.plugin); - } + // can use _storage.getAdmin(idAdmin); +// function getPledgeAdmin(uint64 idAdmin) public constant returns ( +// PledgeAdmins.PledgeAdminType adminType, +// address addr, +// string name, +// string url, +// uint64 commitTime, +// uint64 parentProject, +// bool canceled, +// address plugin) +// { +// (adminType, addr, name, url, commitTime, parentProject, canceled, plugin) = _storage.getAdmin(idAdmin); +// } //////// // Private methods @@ -449,14 +333,6 @@ contract LiquidPledgingBase is Escapable { return idx; } - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - /// @notice A getter to look up a Pledge's details /// @param idPledge The id for the Pledge to lookup /// @return The PledgeA struct for the specified Pledge @@ -498,53 +374,35 @@ contract LiquidPledgingBase is Escapable { /// @param p The Pledge being queried /// @return The maximum commitTime out of the owner and all the delegates function maxCommitTime(Pledge p) internal view returns(uint commitTime) { - PledgeAdmin storage m = findAdmin(p.owner); - commitTime = m.commitTime; // start with the owner's commitTime + uint adminsSize = _storage.pledgeAdminsCount(); + require(adminsSize >= p.owner); + + commitTime = _storage.getAdminCommitTime(p.owner); // start with the owner's commitTime for (uint i=0; i= p.delegationChain[i]); + uint delegateCommitTime = _storage.getAdminCommitTime(p.delegationChain[i]); // If a delegate's commitTime is longer, make it the new commitTime - if (m.commitTime > commitTime) commitTime = m.commitTime; + if (delegateCommitTime > commitTime) commitTime = delegateCommitTime; } } - /// @notice A getter to find the level of authority a specific Project has - /// using a self-referential loop - /// @param m The Project being queried - /// @return The level of authority a specific Project has - function getProjectLevel(PledgeAdmin m) internal returns(uint) { - assert(m.adminType == PledgeAdminType.Project); - if (m.parentProject == 0) return(1); - PledgeAdmin storage parentNM = findAdmin(m.parentProject); - return getProjectLevel(parentNM) + 1; - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) public constant returns (bool) { - PledgeAdmin storage m = findAdmin(projectId); - if (m.adminType == PledgeAdminType.Giver) return false; - assert(m.adminType == PledgeAdminType.Project); - if (m.canceled) return true; - if (m.parentProject == 0) return false; - return isProjectCanceled(m.parentProject); - } - /// @notice A getter to find the oldest pledge that hasn't been canceled /// @param idPledge The starting place to lookup the pledges /// @return The oldest idPledge that hasn't been canceled (DUH!) - function getOldestPledgeNotCanceled(uint64 idPledge - ) internal constant returns(uint64) { + function getOldestPledgeNotCanceled( + uint64 idPledge + ) internal constant returns(uint64) + { if (idPledge == 0) return 0; Pledge storage p = findPledge(idPledge); - PledgeAdmin storage admin = findAdmin(p.owner); - if (admin.adminType == PledgeAdminType.Giver) return idPledge; - assert(admin.adminType == PledgeAdminType.Project); + PledgeAdmins.PledgeAdminType adminType = _storage.getAdminType(p.owner); + if (adminType == PledgeAdmins.PledgeAdminType.Giver) return idPledge; + assert(adminType == PledgeAdmins.PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) return idPledge; + if (!_storage.isProjectCanceled(p.owner)) return idPledge; return getOldestPledgeNotCanceled(p.oldPledge); } @@ -552,9 +410,14 @@ contract LiquidPledgingBase is Escapable { /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param m The Admin being checked - function checkAdminOwner(PledgeAdmin m) internal constant { + function checkAdminOwner(PledgeAdmins.PledgeAdmin m) internal constant { require((msg.sender == m.addr) || (msg.sender == address(m.plugin))); } + + function checkAdminOwner(uint idAdmin) internal constant { + require((msg.sender == _storage.getAdminPlugin(idAdmin)) || (msg.sender == _storage.getAdminAddr(idAdmin))); + } + /////////////////////////// // Plugin Whitelist Methods /////////////////////////// diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol new file mode 100644 index 0000000..cf81dc9 --- /dev/null +++ b/contracts/PledgeAdmins.sol @@ -0,0 +1,411 @@ +pragma solidity ^0.4.17; + +import "./ILiquidPledgingPlugin.sol"; +import "./EternallyPersistentLib.sol"; + +library PledgeAdmins { + using EternallyPersistentLib for EternalStorage; + + //TODO we can pack some of these struct values, which should save space. TEST THIS + //TODO making functions public may lower deployment cost, but increase gas / tx costs. TEST THIS + //TODO is it cheaper to issue a storage check before updating? where should this be done? EternalStorage? + + string constant class = "PledgeAdmins"; + bytes32 constant admins = keccak256("pledgeAdmins"); + + enum PledgeAdminType { Giver, Delegate, Project } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + string name; + string url; // Can be IPFS hash + uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + } + +// PledgeAdmins[] admins; + +// function PledgeAdmins(address _storage) EternallyPersistent(_storage) public { +// function setStorage(address _storage) internal { +// require(address(adminStorage == 0x0)); +// adminStorage = EternallyPersistent(_storage); +// TODO maybe make an init method? +// admins.length = 1; // we reserve the 0 admin +// } + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + EternalStorage _storage, + string name, + string url, + uint commitTime, + ILiquidPledgingPlugin plugin + ) internal returns (uint idGiver) { +// bytes32 idGuardian = bytes32(addrGuardian); +// +// if (guardian_exists(addrGuardian)) { +// _storage.stgObjectSetString( "Guardian", idGuardian, "name", name); +// return; +// } + + idGiver = _storage.stgCollectionAddItem(admins);//, idGiver); + + // Save the fields + _storage.stgObjectSetUInt(class, idGiver, "adminType", uint(PledgeAdminType.Giver)); + _storage.stgObjectSetAddress(class, idGiver, "addr", msg.sender); + _storage.stgObjectSetString(class, idGiver, "name", name); + _storage.stgObjectSetString(class, idGiver, "url", url); + _storage.stgObjectSetUInt(class, idGiver, "commitTime", commitTime); + _storage.stgObjectSetAddress(class, idGiver, "plugin", address(plugin)); + + GiverAdded(idGiver); + } + + event GiverAdded(uint indexed idGiver); + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + EternalStorage _storage, + uint idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + require(getAdminType(_storage, idGiver) == PledgeAdminType.Giver); // Must be a Giver + require(getAdminAddr(_storage, idGiver) == msg.sender); // Current addr had to send this tx + + // Save the fields + _storage.stgObjectSetAddress(class, idGiver, "addr", newAddr); + _storage.stgObjectSetString(class, idGiver, "name", newName); + _storage.stgObjectSetString(class, idGiver, "url", newUrl); + _storage.stgObjectSetUInt(class, idGiver, "commitTime", newCommitTime); + + GiverUpdated(idGiver); + } + + event GiverUpdated(uint indexed idGiver); + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the admins array + function addDelegate( + EternalStorage _storage, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) internal returns (uint idDelegate) { + idDelegate = _storage.stgCollectionAddItem(admins);//, idDelegate); + + // Save the fields + _storage.stgObjectSetUInt(class, idDelegate, "adminType", uint(PledgeAdminType.Delegate)); + _storage.stgObjectSetAddress(class, idDelegate, "addr", msg.sender); + _storage.stgObjectSetString(class, idDelegate, "name", name); + _storage.stgObjectSetString(class, idDelegate, "url", url); + _storage.stgObjectSetUInt(class, idDelegate, "commitTime", commitTime); + _storage.stgObjectSetAddress(class, idDelegate, "plugin", address(plugin)); + + DelegateAdded(idDelegate); + } + + event DelegateAdded(uint indexed idDelegate); + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + EternalStorage _storage, + uint idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + require(getAdminType(_storage, idDelegate) == PledgeAdminType.Delegate); + require(getAdminAddr(_storage, idDelegate) == msg.sender); // Current addr had to send this tx + + // Save the fields + _storage.stgObjectSetAddress(class, idDelegate, "addr", newAddr); + _storage.stgObjectSetString(class, idDelegate, "name", newName); + _storage.stgObjectSetString(class, idDelegate, "url", newUrl); + _storage.stgObjectSetUInt(class, idDelegate, "commitTime", newCommitTime); + + DelegateUpdated(idDelegate); + } + + event DelegateUpdated(uint indexed idDelegate); + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + EternalStorage _storage, + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) internal returns (uint idProject) { + idProject = _storage.stgCollectionAddItem(admins);//, idProject); + + // Save the fields + _storage.stgObjectSetUInt(class, idProject, "adminType", uint(PledgeAdminType.Project)); + _storage.stgObjectSetAddress(class, idProject, "addr", projectAdmin); + _storage.stgObjectSetString(class, idProject, "name", name); + _storage.stgObjectSetString(class, idProject, "url", url); + + // NOTICE: we do not verify that the parentProject has a `Project` adminType + // this is expected to be done by the calling method + _storage.stgObjectSetUInt(class, idProject, "parentProject", parentProject); + + _storage.stgObjectSetUInt(class, idProject, "commitTime", commitTime); + _storage.stgObjectSetAddress(class, idProject, "plugin", address(plugin)); + + ProjectAdded(idProject); + } + + event ProjectAdded(uint indexed idProject); + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + EternalStorage _storage, + uint idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + require(getAdminType(_storage, idProject) == PledgeAdminType.Project); + require(getAdminAddr(_storage, idProject) == msg.sender); // Current addr had to send this tx + + // Save the fields + _storage.stgObjectSetAddress(class, idProject, "addr", newAddr); + _storage.stgObjectSetString(class, idProject, "name", newName); + _storage.stgObjectSetString(class, idProject, "url", newUrl); + _storage.stgObjectSetUInt(class, idProject, "commitTime", newCommitTime); + + ProjectUpdated(idProject); + } + + event ProjectUpdated(uint indexed idAdmin); + + function cancelProject(EternalStorage _storage, uint idProject) internal { + _storage.stgObjectSetBoolean(class, idProject, "canceled", true); + CancelProject(idProject); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(EternalStorage _storage, uint projectId) + public constant returns (bool) + { + require(pledgeAdminsCount(_storage) >= projectId); + + PledgeAdminType adminType = getAdminType(_storage, projectId); + + if (adminType == PledgeAdminType.Giver) return false; + assert(adminType == PledgeAdminType.Project); + + if (getAdminCanceled(_storage, projectId)) return true; + + uint parentProject = getAdminParentProject(_storage, projectId); + if (parentProject == 0) return false; + + return isProjectCanceled(_storage, parentProject); + } + + event CancelProject(uint indexed idProject); + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + //TODO I think using 'size' in both Pledges lib & PledgeAdmins lib will cause a conflict since they use the same storage contract +// function size(EternalStorage _storage) constant returns(uint) { + function pledgeAdminsCount(EternalStorage _storage) public constant returns(uint) { + return _storage.stgCollectionLength(admins);// - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getAdmin(EternalStorage _storage, uint idAdmin) internal view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint parentProject, + bool canceled, + address plugin + ) + { + adminType = getAdminType(_storage, idAdmin); + addr = getAdminAddr(_storage, idAdmin); + name = getAdminName(_storage, idAdmin); + url = _storage.stgObjectGetString(class, idAdmin, "url"); + commitTime = uint64(getAdminCommitTime(_storage, idAdmin)); + + // parentProject & canceled only belong to Project admins, + // so don't waste the gas to fetch the data + if (adminType == PledgeAdminType.Project) { + parentProject = getAdminParentProject(_storage, idAdmin); + canceled = getAdminCanceled(_storage, idAdmin); + } + + plugin = getAdminPlugin(_storage, idAdmin); + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param idProject The id of the Project being queried + /// @return The level of authority a specific Project has + function getProjectLevel(EternalStorage _storage, uint idProject) public returns(uint) { + assert(getAdminType(_storage, idProject) == PledgeAdminType.Project); + uint parentProject = getAdminParentProject(_storage, idProject); + if (parentProject == 0) return(1); + return getProjectLevel(_storage, parentProject) + 1; + } + +//18,446,744,070,000,000,000 uint64 +//1,516,144,546,228,000 uint56 + +//////// +// Methods to fetch individual attributes of a PledgeAdmin +/////// + + // costs ~10k gas + function getAdminType( + EternalStorage _storage, + uint idAdmin + ) public view returns (PledgeAdminType) + { + return PledgeAdminType(_storage.stgObjectGetUInt(class, idAdmin, "adminType")); + } + + // costs ~10k gas + function getAdminAddr( + EternalStorage _storage, + uint idAdmin + ) public view returns (address) + { + return _storage.stgObjectGetAddress(class, idAdmin, "addr"); + } + + // costs ~8k gas + function getAdminName( + EternalStorage _storage, + uint idAdmin + ) internal view returns (string) + { + return _storage.stgObjectGetString(class, idAdmin, "name"); + } + + // costs ~10k gas + function getAdminParentProject( + EternalStorage _storage, + uint idAdmin + ) public view returns (uint) + { + return _storage.stgObjectGetUInt(class, idAdmin, "parentProject"); + } + + // costs ~10k gas + function getAdminCanceled( + EternalStorage _storage, + uint idAdmin + ) public view returns (bool) + { + return _storage.stgObjectGetBoolean(class, idAdmin, "canceled"); + } + + // costs ~10k gas + function getAdminPlugin( + EternalStorage _storage, + uint idAdmin + ) public view returns (address) + { + return _storage.stgObjectGetAddress(class, idAdmin, "plugin"); + } + + // costs ~10k gas + function getAdminCommitTime( + EternalStorage _storage, + uint idAdmin + ) public view returns (uint) + { + return _storage.stgObjectGetUInt(class, idAdmin, "commitTime"); + } + +} diff --git a/js/eternalStorage.js b/js/eternalStorage.js new file mode 100644 index 0000000..4351a62 --- /dev/null +++ b/js/eternalStorage.js @@ -0,0 +1,6 @@ +const EternalStorageAbi = require('../build/EternalStorage.sol').EternalStorageAbi; +const EternalStorageCode = require('../build/EternalStorage.sol').EternalStorageByteCode; +const generateClass = require('eth-contract-class').default; + +module.exports = generateClass(EternalStorageAbi, EternalStorageCode); + From 674397cc80fcd6488bd465e7eb58955ec98eed81 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 18 Jan 2018 20:17:17 -0800 Subject: [PATCH 15/52] make library methods internal to save extra delegate calls --- contracts/EternallyPersistentLib.sol | 12 +++--- contracts/LiquidPledging.sol | 6 --- contracts/LiquidPledgingBase.sol | 6 +-- contracts/LiquidPledgingMock.sol | 5 ++- contracts/PledgeAdmins.sol | 56 +++++----------------------- 5 files changed, 20 insertions(+), 65 deletions(-) diff --git a/contracts/EternallyPersistentLib.sol b/contracts/EternallyPersistentLib.sol index fa425f8..8ecf5a6 100644 --- a/contracts/EternallyPersistentLib.sol +++ b/contracts/EternallyPersistentLib.sol @@ -6,7 +6,7 @@ library EternallyPersistentLib { // UInt - function stgObjectGetUInt(EternalStorage _storage, string class, uint id, string fieldName) public view returns (uint) { + function stgObjectGetUInt(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (uint) { bytes32 record = keccak256(class, id, fieldName); return _storage.getUIntValue(record); } @@ -18,7 +18,7 @@ library EternallyPersistentLib { // Boolean - function stgObjectGetBoolean(EternalStorage _storage, string class, uint id, string fieldName) public view returns (bool) { + function stgObjectGetBoolean(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (bool) { bytes32 record = keccak256(class, id, fieldName); return _storage.getBooleanValue(record); } @@ -88,7 +88,7 @@ library EternallyPersistentLib { // address - function stgObjectGetAddress(EternalStorage _storage, string class, uint id, string fieldName) public view returns (address) { + function stgObjectGetAddress(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (address) { bytes32 record = keccak256(class, id, fieldName); return _storage.getAddressValue(record); } @@ -100,7 +100,7 @@ library EternallyPersistentLib { // bytes32 - function stgObjectGetBytes32(EternalStorage _storage, string class, uint id, string fieldName) public view returns (bytes32) { + function stgObjectGetBytes32(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (bytes32) { bytes32 record = keccak256(class, id, fieldName); return _storage.getBytes32Value(record); } @@ -153,11 +153,11 @@ library EternallyPersistentLib { // _storage.setUIntValue(keccak256(idArray, idItem, "_idx"), 0); // } - function stgCollectionLength(EternalStorage _storage, bytes32 idArray) public view returns (uint) { + function stgCollectionLength(EternalStorage _storage, bytes32 idArray) internal view returns (uint) { return _storage.getUIntValue(keccak256(idArray, "length")); } - function stgCollectionIdFromIdx(EternalStorage _storage, bytes32 idArray, uint idx) public view returns (bytes32) { + function stgCollectionIdFromIdx(EternalStorage _storage, bytes32 idArray, uint idx) internal view returns (bytes32) { return _storage.getBytes32Value(keccak256(idArray, idx)); } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 076af86..6848eb6 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -46,7 +46,6 @@ contract LiquidPledging is LiquidPledgingBase { { } - event Name(string name); /// @notice This is how value enters the system and how pledges are created; /// the ether is sent to the vault, an pledge for the Giver is created (or /// found), the amount of ETH donated in wei is added to the `amount` in @@ -67,11 +66,6 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmins.PledgeAdminType adminType = _storage.getAdminType(idGiver); require(adminType == PledgeAdmins.PledgeAdminType.Giver); - Gas(msg.gas); - _storage.getAdmin(idGiver); - Gas(msg.gas); - return; - uint amount = msg.value; require(amount > 0); vault.transfer(amount); // Sends the `msg.value` (in wei) to the `vault` diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index ac2d649..316d846 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -409,11 +409,7 @@ contract LiquidPledgingBase is Escapable { /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin - /// @param m The Admin being checked - function checkAdminOwner(PledgeAdmins.PledgeAdmin m) internal constant { - require((msg.sender == m.addr) || (msg.sender == address(m.plugin))); - } - + /// @param idAdmin The id of the admin being checked function checkAdminOwner(uint idAdmin) internal constant { require((msg.sender == _storage.getAdminPlugin(idAdmin)) || (msg.sender == _storage.getAdminAddr(idAdmin))); } diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index a9485f0..a44b250 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -30,16 +30,17 @@ contract LiquidPledgingMock is LiquidPledging { /// instance and sets the mocked time to the current blocktime. /// @param _vault The vault where ETH backing this pledge is stored function LiquidPledgingMock( + address _storage, address _vault, address _escapeHatchCaller, address _escapeHatchDestination - ) LiquidPledging(_vault, _escapeHatchCaller, _escapeHatchDestination) { + ) LiquidPledging(_storage, _vault, _escapeHatchCaller, _escapeHatchDestination) { mock_time = now; } /// @dev `getTime` is a basic getter function for /// the mock_time parameter - function getTime() internal returns (uint) { + function getTime() internal view returns (uint) { return mock_time; } diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index cf81dc9..5176f61 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.4.17; +pragma solidity ^0.4.18; import "./ILiquidPledgingPlugin.sol"; import "./EternallyPersistentLib.sol"; @@ -15,33 +15,6 @@ library PledgeAdmins { enum PledgeAdminType { Giver, Delegate, Project } - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - string name; - string url; // Can be IPFS hash - uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - } - -// PledgeAdmins[] admins; - -// function PledgeAdmins(address _storage) EternallyPersistent(_storage) public { -// function setStorage(address _storage) internal { -// require(address(adminStorage == 0x0)); -// adminStorage = EternallyPersistent(_storage); -// TODO maybe make an init method? -// admins.length = 1; // we reserve the 0 admin -// } - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address /// @param name The name used to identify the Giver /// @param url The link to the Giver's profile often an IPFS hash @@ -57,13 +30,6 @@ library PledgeAdmins { uint commitTime, ILiquidPledgingPlugin plugin ) internal returns (uint idGiver) { -// bytes32 idGuardian = bytes32(addrGuardian); -// -// if (guardian_exists(addrGuardian)) { -// _storage.stgObjectSetString( "Guardian", idGuardian, "name", name); -// return; -// } - idGiver = _storage.stgCollectionAddItem(admins);//, idGiver); // Save the fields @@ -260,7 +226,7 @@ library PledgeAdmins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(EternalStorage _storage, uint projectId) - public constant returns (bool) + internal constant returns (bool) { require(pledgeAdminsCount(_storage) >= projectId); @@ -281,9 +247,7 @@ library PledgeAdmins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - //TODO I think using 'size' in both Pledges lib & PledgeAdmins lib will cause a conflict since they use the same storage contract -// function size(EternalStorage _storage) constant returns(uint) { - function pledgeAdminsCount(EternalStorage _storage) public constant returns(uint) { + function pledgeAdminsCount(EternalStorage _storage) internal constant returns(uint) { return _storage.stgCollectionLength(admins);// - 1; } @@ -331,7 +295,7 @@ library PledgeAdmins { /// using a recursive loop /// @param idProject The id of the Project being queried /// @return The level of authority a specific Project has - function getProjectLevel(EternalStorage _storage, uint idProject) public returns(uint) { + function getProjectLevel(EternalStorage _storage, uint idProject) internal returns(uint) { assert(getAdminType(_storage, idProject) == PledgeAdminType.Project); uint parentProject = getAdminParentProject(_storage, idProject); if (parentProject == 0) return(1); @@ -349,7 +313,7 @@ library PledgeAdmins { function getAdminType( EternalStorage _storage, uint idAdmin - ) public view returns (PledgeAdminType) + ) internal view returns (PledgeAdminType) { return PledgeAdminType(_storage.stgObjectGetUInt(class, idAdmin, "adminType")); } @@ -358,7 +322,7 @@ library PledgeAdmins { function getAdminAddr( EternalStorage _storage, uint idAdmin - ) public view returns (address) + ) internal view returns (address) { return _storage.stgObjectGetAddress(class, idAdmin, "addr"); } @@ -376,7 +340,7 @@ library PledgeAdmins { function getAdminParentProject( EternalStorage _storage, uint idAdmin - ) public view returns (uint) + ) internal view returns (uint) { return _storage.stgObjectGetUInt(class, idAdmin, "parentProject"); } @@ -385,7 +349,7 @@ library PledgeAdmins { function getAdminCanceled( EternalStorage _storage, uint idAdmin - ) public view returns (bool) + ) internal view returns (bool) { return _storage.stgObjectGetBoolean(class, idAdmin, "canceled"); } @@ -394,7 +358,7 @@ library PledgeAdmins { function getAdminPlugin( EternalStorage _storage, uint idAdmin - ) public view returns (address) + ) internal view returns (address) { return _storage.stgObjectGetAddress(class, idAdmin, "plugin"); } @@ -403,7 +367,7 @@ library PledgeAdmins { function getAdminCommitTime( EternalStorage _storage, uint idAdmin - ) public view returns (uint) + ) internal view returns (uint) { return _storage.stgObjectGetUInt(class, idAdmin, "commitTime"); } From 4f2bf61dd255863837ba54f72994ecd6516b01f3 Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 19 Jan 2018 10:33:58 -0800 Subject: [PATCH 16/52] first pass at refactoring to Pledges lib --- contracts/LiquidPledging.sol | 105 +++++++++--------- contracts/LiquidPledgingBase.sol | 154 +++++++------------------- contracts/LiquidPledgingMock.sol | 4 +- contracts/PledgeAdmins.sol | 14 +-- contracts/Pledges.sol | 184 +++++++++++++++++++++++++++++++ 5 files changed, 286 insertions(+), 175 deletions(-) create mode 100644 contracts/Pledges.sol diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 6848eb6..3cd6220 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -70,18 +70,19 @@ contract LiquidPledging is LiquidPledgingBase { require(amount > 0); vault.transfer(amount); // Sends the `msg.value` (in wei) to the `vault` - uint64 idPledge = findOrCreatePledge( + uint64 idPledge = _storage.findOrCreatePledge( idGiver, new uint64[](0), // Creates empty array for delegationChain 0, 0, 0, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); - Pledge storage nTo = findPledge(idPledge); - nTo.amount += amount; + uint pAmount = _storage.getPledgeAmount(idPledge); + pAmount += amount; + _storage.setPledgeAmount(idPledge, pAmount); Transfer(0, idPledge, amount); // An event @@ -107,10 +108,10 @@ contract LiquidPledging is LiquidPledgingBase { idPledge = normalizePledge(idPledge); - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); PledgeAdmins.PledgeAdminType receiverAdminType = _storage.getAdminType(idReceiver); - require(p.pledgeState == PledgeState.Pledged); + require(p.pledgeState == Pledges.PledgeState.Pledged); // If the sender is the owner of the Pledge if (p.owner == idSender) { @@ -128,13 +129,13 @@ contract LiquidPledging is LiquidPledgingBase { // intendedProject by the owner if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = findOrCreatePledge( + uint64 toPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, - PledgeState.Pledged); + Pledges.PledgeState.Pledged); doTransfer(idPledge, toPledge, amount); } else { undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); @@ -229,17 +230,17 @@ contract LiquidPledging is LiquidPledgingBase { /// @param amount Quantity of ether (in wei) to be authorized function withdraw(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); // Updates pledge info - Pledge storage p = findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); + Pledges.Pledge memory p = _storage.findPledge(idPledge); + require(p.pledgeState == Pledges.PledgeState.Pledged); checkAdminOwner(p.owner); - uint64 idNewPledge = findOrCreatePledge( + uint64 idNewPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, - PledgeState.Paying + Pledges.PledgeState.Paying ); doTransfer(idPledge, idNewPledge, amount); @@ -247,44 +248,44 @@ contract LiquidPledging is LiquidPledgingBase { vault.authorizePayment(bytes32(idNewPledge), _storage.getAdminAddr(p.owner), amount); } - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// @notice `onlyVault` Confirms a withdraw request changing the Pledges.PledgeState /// from Paying to Paid /// @param idPledge Id of the pledge that is to be withdrawn /// @param amount Quantity of ether (in wei) to be withdrawn function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); - require(p.pledgeState == PledgeState.Paying); + require(p.pledgeState == Pledges.PledgeState.Paying); - uint64 idNewPledge = findOrCreatePledge( + uint64 idNewPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, - PledgeState.Paid + Pledges.PledgeState.Paid ); doTransfer(idPledge, idNewPledge, amount); } - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// @notice `onlyVault` Cancels a withdraw request, changing the Pledges.PledgeState /// from Paying back to Pledged /// @param idPledge Id of the pledge that's withdraw is to be canceled /// @param amount Quantity of ether (in wei) to be canceled function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); - require(p.pledgeState == PledgeState.Paying); //TODO change to revert???????????????????????????? + require(p.pledgeState == Pledges.PledgeState.Paying); //TODO change to revert???????????????????????????? // When a payment is canceled, never is assigned to a project. - uint64 oldPledge = findOrCreatePledge( + uint64 oldPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); oldPledge = normalizePledge(oldPledge); @@ -307,7 +308,7 @@ contract LiquidPledging is LiquidPledgingBase { function cancelPledge(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); require(p.oldPledge != 0); checkAdminOwner(p.owner); @@ -415,28 +416,28 @@ contract LiquidPledging is LiquidPledgingBase { uint amount, uint64 idReceiver ) internal { - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); // Ensure that the pledge is not already at max pledge depth // and the project has not been canceled - require(getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(_storage.getPledgeLevel(p.oldPledge) < MAX_INTERPROJECT_LEVEL); require(!_storage.isProjectCanceled(idReceiver)); - uint64 oldPledge = findOrCreatePledge( + uint64 oldPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); - uint64 toPledge = findOrCreatePledge( + uint64 toPledge = _storage.findOrCreatePledge( idReceiver, // Set the new owner new uint64[](0), // clear the delegation chain 0, 0, oldPledge, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); doTransfer(idPledge, toPledge, amount); } @@ -453,13 +454,13 @@ contract LiquidPledging is LiquidPledgingBase { uint amount, uint64 idReceiver ) internal { - uint64 toPledge = findOrCreatePledge( + uint64 toPledge = _storage.findOrCreatePledge( idReceiver, new uint64[](0), 0, 0, 0, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); doTransfer(idPledge, toPledge, amount); } @@ -474,7 +475,7 @@ contract LiquidPledging is LiquidPledgingBase { uint amount, uint64 idReceiver ) internal { - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); require(p.delegationChain.length < MAX_DELEGATES); uint64[] memory newDelegationChain = new uint64[]( @@ -487,13 +488,13 @@ contract LiquidPledging is LiquidPledgingBase { // Make the last item in the array the idReceiver newDelegationChain[p.delegationChain.length] = idReceiver; - uint64 toPledge = findOrCreatePledge( + uint64 toPledge = _storage.findOrCreatePledge( p.owner, newDelegationChain, 0, 0, p.oldPledge, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); doTransfer(idPledge, toPledge, amount); } @@ -510,7 +511,7 @@ contract LiquidPledging is LiquidPledgingBase { uint q ) internal returns (uint64) { - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); uint64[] memory newDelegationChain = new uint64[]( p.delegationChain.length - q ); @@ -518,13 +519,13 @@ contract LiquidPledging is LiquidPledgingBase { for (uint i=0; i= amount); nFrom.amount -= amount; nTo.amount += amount; @@ -583,7 +584,7 @@ contract LiquidPledging is LiquidPledgingBase { // callPlugins(false, from, to, amount); } - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the /// commitTime, it changes the owner to be the proposed project @@ -602,35 +603,35 @@ contract LiquidPledging is LiquidPledgingBase { /// @return The normalized Pledge! function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); // Check to make sure this pledge hasn't already been used // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { + if (p.pledgeState != Pledges.PledgeState.Pledged) { return idPledge; } // First send to a project if it's proposed and committed if ((p.intendedProject > 0) && ( getTime() > p.commitTime)) { - uint64 oldPledge = findOrCreatePledge( + uint64 oldPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); - uint64 toPledge = findOrCreatePledge( + uint64 toPledge = _storage.findOrCreatePledge( p.intendedProject, new uint64[](0), 0, 0, oldPledge, - PledgeState.Pledged + Pledges.PledgeState.Pledged ); doTransfer(idPledge, toPledge, p.amount); idPledge = toPledge; - p = findPledge(idPledge); + p = _storage.findPledge(idPledge); } toPledge = getOldestPledgeNotCanceled(idPledge); @@ -720,7 +721,7 @@ contract LiquidPledging is LiquidPledgingBase { // or transferring context uint64 offset = idPledge == fromPledge ? 0 : 256; allowedAmount = amount; - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); // TODO I think we can remove these check b/c the admins array only grows, thus if adminId is out of index, it will just return 0x0 & skip the plugin call // uint adminsSize = _storage.pledgeAdminsCount(); diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 316d846..260c553 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -21,6 +21,7 @@ pragma solidity ^0.4.11; import "./ILiquidPledgingPlugin.sol"; import "giveth-common-contracts/contracts/Escapable.sol"; import "./PledgeAdmins.sol"; +import "./Pledges.sol"; import "./EternalStorage.sol"; /// @dev This is an interface for `LPVault` which serves as a secure storage for @@ -36,32 +37,14 @@ interface LPVault { /// data structures contract LiquidPledgingBase is Escapable { using PledgeAdmins for EternalStorage; + using Pledges for EternalStorage; // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 10; uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; - enum PledgeState { Pledged, Paying, Paid } - - struct Pledge { - uint amount; - uint64 owner; // PledgeAdmin - uint64[] delegationChain; // List of delegates in order of authority - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - PledgeState pledgeState; // Pledged, Paying, Paid - } - EternalStorage public _storage; - Pledge[] pledges; - - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - LPVault public vault; mapping (bytes32 => bool) pluginWhitelist; @@ -76,9 +59,6 @@ contract LiquidPledgingBase is Escapable { event ProjectAdded(uint indexed idProject); event ProjectUpdated(uint indexed idProject); - // for testing - event Gas(uint remainingGas); - ///////////// // Modifiers ///////////// @@ -91,6 +71,12 @@ contract LiquidPledgingBase is Escapable { _; } + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint idAdmin) internal constant { + require(msg.sender == _storage.getAdminPlugin(idAdmin) || msg.sender == _storage.getAdminAddr(idAdmin)); + } /////////////// // Constructor @@ -230,8 +216,8 @@ contract LiquidPledgingBase is Escapable { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public constant returns (uint) { - return pledges.length - 1; + function numberOfPledges() public view returns (uint) { + return _storage.pledgesCount(); } /// @notice A getter that returns the details of the specified pledge @@ -246,12 +232,12 @@ contract LiquidPledgingBase is Escapable { uint64 intendedProject, uint64 commitTime, uint64 oldPledge, - PledgeState pledgeState + Pledges.PledgeState pledgeState ) { - Pledge storage p = findPledge(idPledge); + Pledges.Pledge memory p = _storage.findPledge(idPledge); amount = p.amount; owner = p.owner; - nDelegates = uint64(p.delegationChain.length); + nDelegates = uint64(_storage.getPledgeDelegateCount(idPledge)); intendedProject = p.intendedProject; commitTime = p.commitTime; oldPledge = p.oldPledge; @@ -266,81 +252,37 @@ contract LiquidPledgingBase is Escapable { address addr, string name ) { - Pledge storage p = findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - require(_storage.pledgeAdminsCount() >= idxDelegate); + idDelegate = uint64(_storage.getPledgeDelegate(idPledge, idxDelegate)); addr = _storage.getAdminAddr(idDelegate); name = _storage.getAdminName(idDelegate); } /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . -// function numberOfPledgeAdmins() public constant returns(uint) { -// return _storage.pledgeAdminsCount(); -// } + function numberOfPledgeAdmins() public constant returns(uint) { + return _storage.pledgeAdminsCount(); + } - // can use _storage.getAdmin(idAdmin); -// function getPledgeAdmin(uint64 idAdmin) public constant returns ( -// PledgeAdmins.PledgeAdminType adminType, -// address addr, -// string name, -// string url, -// uint64 commitTime, -// uint64 parentProject, -// bool canceled, -// address plugin) -// { -// (adminType, addr, name, url, commitTime, parentProject, canceled, plugin) = _storage.getAdmin(idAdmin); -// } + function getPledgeAdmin(uint64 idAdmin) public constant returns ( + PledgeAdmins.PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin) + { +// uint p; +// (adminType, addr, name, url, commitTime, p, canceled, plugin) = _storage.getAdmin(idAdmin); + return _storage.getAdmin(idAdmin); +// parentProject = uint64(p); + } //////// // Private methods /////// - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256( - owner, delegationChain, intendedProject, commitTime, oldPledge, state); - uint64 idx = hPledge2idx[hPledge]; - if (idx > 0) return idx; - idx = uint64(pledges.length); - hPledge2idx[hPledge] = idx; - pledges.push(Pledge( - 0, owner, delegationChain, intendedProject, commitTime, oldPledge, state)); - return idx; - } - - /// @notice A getter to look up a Pledge's details - /// @param idPledge The id for the Pledge to lookup - /// @return The PledgeA struct for the specified Pledge - function findPledge(uint64 idPledge) internal view returns (Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - // a constant for when a delegate is requested that is not in the system uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; @@ -352,28 +294,18 @@ contract LiquidPledgingBase is Escapable { /// `admins` array index `idDelegate` this returns that delegates /// corresponding index in the delegationChain. Otherwise it returns /// the NOTFOUND constant - function getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + function getDelegateIdx(Pledges.Pledge p, uint64 idDelegate) internal pure returns(uint64) { for (uint i=0; i < p.delegationChain.length; i++) { if (p.delegationChain[i] == idDelegate) return uint64(i); } return NOTFOUND; } - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function getPledgeLevel(Pledge p) internal returns(uint) { - if (p.oldPledge == 0) return 0; - Pledge storage oldN = findPledge(p.oldPledge); - return getPledgeLevel(oldN) + 1; // a loop lookup - } - /// @notice A getter to find the longest commitTime out of the owner and all /// the delegates for a specified pledge /// @param p The Pledge being queried /// @return The maximum commitTime out of the owner and all the delegates - function maxCommitTime(Pledge p) internal view returns(uint commitTime) { + function maxCommitTime(Pledges.Pledge p) internal view returns(uint commitTime) { uint adminsSize = _storage.pledgeAdminsCount(); require(adminsSize >= p.owner); @@ -393,25 +325,19 @@ contract LiquidPledgingBase is Escapable { /// @return The oldest idPledge that hasn't been canceled (DUH!) function getOldestPledgeNotCanceled( uint64 idPledge - ) internal constant returns(uint64) + ) internal view returns(uint64) { if (idPledge == 0) return 0; - Pledge storage p = findPledge(idPledge); + uint owner = _storage.getPledgeOwner(idPledge); - PledgeAdmins.PledgeAdminType adminType = _storage.getAdminType(p.owner); + PledgeAdmins.PledgeAdminType adminType = _storage.getAdminType(owner); if (adminType == PledgeAdmins.PledgeAdminType.Giver) return idPledge; assert(adminType == PledgeAdmins.PledgeAdminType.Project); - if (!_storage.isProjectCanceled(p.owner)) return idPledge; + if (!_storage.isProjectCanceled(owner)) return idPledge; - return getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint idAdmin) internal constant { - require((msg.sender == _storage.getAdminPlugin(idAdmin)) || (msg.sender == _storage.getAdminAddr(idAdmin))); + uint64 oldPledge = uint64(_storage.getPledgeOldPledge(idPledge)); + return getOldestPledgeNotCanceled(oldPledge); } /////////////////////////// diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index a44b250..763c95e 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -34,7 +34,7 @@ contract LiquidPledgingMock is LiquidPledging { address _vault, address _escapeHatchCaller, address _escapeHatchDestination - ) LiquidPledging(_storage, _vault, _escapeHatchCaller, _escapeHatchDestination) { + ) LiquidPledging(_storage, _vault, _escapeHatchCaller, _escapeHatchDestination) public { mock_time = now; } @@ -48,7 +48,7 @@ contract LiquidPledgingMock is LiquidPledging { /// the mock_time parameter /// @param _t This is the value to which the mocked time /// will be set. - function setMockedTime(uint _t) { + function setMockedTime(uint _t) public { mock_time = _t; } } diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 5176f61..127ec23 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -3,6 +3,9 @@ pragma solidity ^0.4.18; import "./ILiquidPledgingPlugin.sol"; import "./EternallyPersistentLib.sol"; +//18,446,744,070,000,000,000 uint64 +//1,516,144,546,228,000 uint56 + library PledgeAdmins { using EternallyPersistentLib for EternalStorage; @@ -30,7 +33,7 @@ library PledgeAdmins { uint commitTime, ILiquidPledgingPlugin plugin ) internal returns (uint idGiver) { - idGiver = _storage.stgCollectionAddItem(admins);//, idGiver); + idGiver = _storage.stgCollectionAddItem(admins); // Save the fields _storage.stgObjectSetUInt(class, idGiver, "adminType", uint(PledgeAdminType.Giver)); @@ -248,7 +251,7 @@ library PledgeAdmins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . function pledgeAdminsCount(EternalStorage _storage) internal constant returns(uint) { - return _storage.stgCollectionLength(admins);// - 1; + return _storage.stgCollectionLength(admins); } /// @notice A constant getter to check the details of a specified Admin @@ -270,7 +273,7 @@ library PledgeAdmins { string name, string url, uint64 commitTime, - uint parentProject, + uint64 parentProject, bool canceled, address plugin ) @@ -284,7 +287,7 @@ library PledgeAdmins { // parentProject & canceled only belong to Project admins, // so don't waste the gas to fetch the data if (adminType == PledgeAdminType.Project) { - parentProject = getAdminParentProject(_storage, idAdmin); + parentProject = uint64(getAdminParentProject(_storage, idAdmin)); canceled = getAdminCanceled(_storage, idAdmin); } @@ -302,9 +305,6 @@ library PledgeAdmins { return getProjectLevel(_storage, parentProject) + 1; } -//18,446,744,070,000,000,000 uint64 -//1,516,144,546,228,000 uint56 - //////// // Methods to fetch individual attributes of a PledgeAdmin /////// diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol new file mode 100644 index 0000000..61b05b2 --- /dev/null +++ b/contracts/Pledges.sol @@ -0,0 +1,184 @@ +pragma solidity ^0.4.18; + +import "./EternallyPersistentLib.sol"; + +library Pledges { + using EternallyPersistentLib for EternalStorage; + + string constant class = "Pledge"; + bytes32 constant pledges = keccak256("pledges"); + + enum PledgeState { Pledged, Paying, Paid } + + struct Pledge { + uint id; + uint amount; + uint64 owner; // PledgeAdmin + uint64[] delegationChain; // List of delegates in order of authority + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + PledgeState pledgeState; // Pledged, Paying, Paid + } + + function pledgesCount(EternalStorage _storage) internal view returns(uint) { + return _storage.stgCollectionLength(pledges); + } + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function findOrCreatePledge( + EternalStorage _storage, + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(owner, delegationChain, intendedProject, commitTime, oldPledge, state); + uint id = _storage.getUIntValue(hPledge); + if (id > 0) return uint64(id); + + id = _storage.stgCollectionAddItem(pledges); + _storage.setUIntValue(hPledge, id); + + _storage.stgObjectSetUInt(class, id, "owner", owner); + if (intendedProject > 0) { + _storage.stgObjectSetUInt(class, id, "intendedProject", intendedProject); + } + if (commitTime > 0) { + _storage.stgObjectSetUInt(class, id, "commitTime", commitTime); + } + if (oldPledge > 0) { + _storage.stgObjectSetUInt(class, id, "oldPledge", oldPledge); + } + _storage.stgObjectSetUInt(class, id, "state", uint(state)); + + if (delegationChain.length > 0) { + _storage.setUIntValue(keccak256("delegationChain", id, "length"), delegationChain.length); + + // TODO pack these? possibly add array method to EternalStorage in anticipation of the new solidity abi encoder + for (uint i=0; i < delegationChain.length; i++) { + _storage.setUIntValue(keccak256("delegationChain", id, i), delegationChain[i]); + } + } + + return uint64(id); + } + + function findPledge(EternalStorage _storage, uint idPledge) internal view returns(Pledge) { + require(idPledge <= pledgesCount(_storage)); + + uint amount = getPledgeAmount(_storage, idPledge); + uint owner = getPledgeOwner(_storage, idPledge); + uint intendedProject = getPledgeIntendedProject(_storage, idPledge); + uint commitTime = getPledgeCommitTime(_storage, idPledge); + uint oldPledge = getPledgeOldPledge(_storage, idPledge); + PledgeState state = getPledgeState(_storage, idPledge); + uint64[] memory delegates = getPledgeDelegates(_storage, idPledge); + + return Pledge( + idPledge, + amount, + uint64(owner), + delegates, + uint64(intendedProject), + uint64(commitTime), + uint64(oldPledge), + state + ); + } + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param idPledge The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function getDelegateIdx(EternalStorage _storage, uint idPledge, uint64 idDelegate) internal view returns(uint64) { + //TODO pack/unpack chain + uint length = getPledgeDelegateCount(_storage, idPledge); + for (uint i=0; i < length; i++) { + if (getPledgeDelegate(_storage, idPledge, i) == idDelegate) return uint64(i); + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param idOldPledge The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function getPledgeLevel(EternalStorage _storage, uint idOldPledge) internal view returns(uint) { + if (idOldPledge == 0) return 0; + idOldPledge = _storage.stgObjectGetUInt(class, idOldPledge, "oldPledge"); + return getPledgeLevel(_storage, idOldPledge) + 1; // a loop lookup + } + + function getPledgeOwner(EternalStorage _storage, uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(class, idPledge, "owner"); + } + + function getPledgeDelegate(EternalStorage _storage, uint idPledge, uint index) internal view returns(uint) { + return _storage.getUIntValue(keccak256("delegationChain", idPledge, index)); + } + + function getPledgeOldPledge(EternalStorage _storage, uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(class, idPledge, "oldPledge"); + } + + function getPledgeAmount(EternalStorage _storage, uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(class, idPledge, "amount"); + } + + function getPledgeIntendedProject(EternalStorage _storage, uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(class, idPledge, "intendedProject"); + } + + function getPledgeCommitTime(EternalStorage _storage, uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(class, idPledge, "commitTime"); + } + + function getPledgeState(EternalStorage _storage, uint idPledge) internal view returns(PledgeState) { + return PledgeState(_storage.stgObjectGetUInt(class, idPledge, "state")); + } + + function getPledgeDelegates(EternalStorage _storage, uint idPledge) internal view returns(uint64[]) { + //TODO pack/unpack chain + uint length = getPledgeDelegateCount(_storage, idPledge); + uint64[] memory delegates = new uint64[](length); + for (uint i=0; i < length; i++) { + delegates[i] = uint64(getPledgeDelegate(_storage, idPledge, i)); + } + return delegates; + } + + function getPledgeDelegateCount(EternalStorage _storage, uint idPledge) internal view returns(uint) { + return _storage.getUIntValue(keccak256("delegationChain", idPledge, "length")); + } + + function setPledgeAmount(EternalStorage _storage, uint idPledge, uint amount) internal { + _storage.stgObjectSetUInt(class, idPledge, "amount", amount); + } + +} From a178396df696cb217cc09d04d687c40766fa5d75 Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 22 Jan 2018 11:00:30 -0800 Subject: [PATCH 17/52] few bug fixes & all tests passing --- contracts/EternalStorage.sol | 9 +++++--- contracts/LiquidPledging.sol | 16 ++++++++------ contracts/PledgeAdmins.sol | 2 +- contracts/Pledges.sol | 4 +++- js/liquidPledgingState.js | 2 +- test/AdminPlugins.js | 28 +++++++++++++++++++++--- test/CancelPledge.js | 33 +++++++++++++++++++++++------ test/DelegationChain.js | 41 ++++++++++++++++++++++++++++-------- test/NormalOperation.js | 38 ++++++++++++++++++++++++++------- test/NormalizePledge.js | 25 ++++++++++++++++++++-- test/Vault.js | 25 ++++++++++++++++++++-- test/helpers/assertFail.js | 2 +- 12 files changed, 181 insertions(+), 44 deletions(-) diff --git a/contracts/EternalStorage.sol b/contracts/EternalStorage.sol index eb93ad3..d9cad96 100644 --- a/contracts/EternalStorage.sol +++ b/contracts/EternalStorage.sol @@ -1,9 +1,8 @@ pragma solidity ^0.4.0; -// change to Escapable -import "node_modules/giveth-common-contracts/contracts/Owned.sol"; +import "node_modules/giveth-common-contracts/contracts/Escapable.sol"; -contract EternalStorage is Owned { +contract EternalStorage is Escapable { mapping(bytes32 => uint) UIntStorage; mapping(bytes32 => int) IntStorage; @@ -13,6 +12,10 @@ contract EternalStorage is Owned { mapping(bytes32 => bytes) BytesStorage; mapping(bytes32 => bytes32) Bytes32Storage; + function EternalStorage(address _escapeHatchCaller, address _escapeHatchDestination) + Escapable(_escapeHatchCaller, _escapeHatchDestination) public { + } + /// UInt Storage function getUIntValue(bytes32 record) public view returns (uint) { diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 3cd6220..c306996 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -567,21 +567,23 @@ contract LiquidPledging is LiquidPledgingBase { /// @param _amount The amount of value that will be transfered. function doTransfer(uint64 from, uint64 to, uint _amount) internal { uint amount = callPlugins(true, from, to, _amount); -// uint amount = _amount; if (from == to) { return; } if (amount == 0) { return; } - Pledges.Pledge memory nFrom = _storage.findPledge(from); - Pledges.Pledge memory nTo = _storage.findPledge(to); - require(nFrom.amount >= amount); - nFrom.amount -= amount; - nTo.amount += amount; + Pledges.Pledge memory pFrom = _storage.findPledge(from); + Pledges.Pledge memory pTo = _storage.findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + _storage.setPledgeAmount(pFrom.id, pFrom.amount); + pTo.amount += amount; + _storage.setPledgeAmount(pTo.id, pTo.amount); Transfer(from, to, amount); -// callPlugins(false, from, to, amount); + callPlugins(false, from, to, amount); } /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 127ec23..84eb55b 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -36,7 +36,7 @@ library PledgeAdmins { idGiver = _storage.stgCollectionAddItem(admins); // Save the fields - _storage.stgObjectSetUInt(class, idGiver, "adminType", uint(PledgeAdminType.Giver)); + // don't set adminType to save gas, b/c 0 is Giver _storage.stgObjectSetAddress(class, idGiver, "addr", msg.sender); _storage.stgObjectSetString(class, idGiver, "name", name); _storage.stgObjectSetString(class, idGiver, "url", url); diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index 61b05b2..085b694 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -68,7 +68,9 @@ library Pledges { if (oldPledge > 0) { _storage.stgObjectSetUInt(class, id, "oldPledge", oldPledge); } - _storage.stgObjectSetUInt(class, id, "state", uint(state)); + if (state != PledgeState.Pledged) { + _storage.stgObjectSetUInt(class, id, "state", uint(state)); + } if (delegationChain.length > 0) { _storage.setUIntValue(keccak256("delegationChain", id, "length"), delegationChain.length); diff --git a/js/liquidPledgingState.js b/js/liquidPledgingState.js index 63c7a1e..9ab9920 100644 --- a/js/liquidPledgingState.js +++ b/js/liquidPledgingState.js @@ -31,7 +31,7 @@ class LiquidPledgingState { } const promises = []; - for (let i = 1; i <= res.nDelegates; i += 1) { + for (let i = 0; i < res.nDelegates; i += 1) { promises.push( this.$lp.getPledgeDelegate(idPledge, i) .then(r => ({ diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index 39e5312..4311e69 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -4,6 +4,9 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); +const lpData = require('../build/LiquidPledgingMock.sol'); +const EternalStorage = require('../js/eternalStorage'); +const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); const LiquidPledging = liquidpledging.LiquidPledgingMock; @@ -35,7 +38,7 @@ describe('LiquidPledging plugins test', function () { before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 6500000, + gasLimit: 6700000, total_accounts: 10, }); @@ -55,7 +58,25 @@ describe('LiquidPledging plugins test', function () { it('Should deploy LiquidPledging contract', async function() { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 6500000 }); + let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + let admins = await PledgeAdmins.new(web3); + + let bytecode = lpData.LiquidPledgingMockByteCode; + bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library + bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + + let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ + arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], + data: bytecode, + }).send({ + from: accounts[0], + gas: 6700000, + gasPrice: 1, + }); + + liquidPledging = new LiquidPledging(web3, lp._address); + await storage.changeOwnership(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); @@ -96,10 +117,11 @@ describe('LiquidPledging plugins test', function () { data: simpleProjectPluginFactoryByteCode, arguments: [] }).send({ from: adminProject1, gas: 5000000 }); + factoryContract.setProvider(web3.currentProvider); await factoryContract.methods .deploy(liquidPledging.$address, "SimplePlugin1", "", 0) - .send({ from: adminProject1, gas: 4000000 }); + .send({ from: adminProject1, gas: 5000000 }) const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); diff --git a/test/CancelPledge.js b/test/CancelPledge.js index 84443e4..df41192 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -4,6 +4,9 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); +const lpData = require('../build/LiquidPledgingMock.sol'); +const EternalStorage = require('../js/eternalStorage'); +const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); const LiquidPledging = liquidpledging.LiquidPledgingMock; @@ -32,7 +35,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 5800000, + gasLimit: 6700000, total_accounts: 10, }); @@ -52,14 +55,32 @@ describe('LiquidPledging cancelPledge normal scenario', function () { it('Should deploy LiquidPledging contract', async () => { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); + let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + let admins = await PledgeAdmins.new(web3); + + let bytecode = lpData.LiquidPledgingMockByteCode; + bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library + bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + + let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ + arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], + data: bytecode, + }).send({ + from: accounts[0], + gas: 6700000, + gasPrice: 1, + }); + + liquidPledging = new LiquidPledging(web3, lp._address); + await storage.changeOwnership(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); it('Should add project and donate ', async () => { await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, '0x0', { from: adminProject1 }); - await liquidPledging.donate(0, 1, { from: giver1, value: '1000', gas: 500000 }); + await liquidPledging.donate(0, 1, { from: giver1, value: '1000' }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); @@ -67,12 +88,12 @@ describe('LiquidPledging cancelPledge normal scenario', function () { it('Should only allow pledge owner to cancel pledge', async () => { await assertFail(async () => { - await liquidPledging.cancelPledge(2, 1000, { from: giver1, gas: 500000 }); + await liquidPledging.cancelPledge(2, 1000, { from: giver1 }); }); }); it('Should cancel pledge and return to oldPledge', async () => { - await liquidPledging.cancelPledge(2, 1000, { from: adminProject1, gas: 500000 }); + await liquidPledging.cancelPledge(2, 1000, { from: adminProject1 }); const st = await liquidPledgingState.getState(); @@ -82,7 +103,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { it('Should not allow to cancel pledge if oldPledge === 0', async () => { await assertFail(async () => { - await liquidPledging.cancelPledge(1, 1000, { from: giver1, gas: 500000 }); + await liquidPledging.cancelPledge(1, 1000, { from: giver1 }); }); }) }); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 832146e..ef0beb3 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -4,6 +4,9 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); +const lpData = require('../build/LiquidPledgingMock.sol'); +const EternalStorage = require('../js/eternalStorage'); +const PledgeAdmins = require('../js/pledgeAdmins'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; @@ -32,16 +35,17 @@ describe('DelegationChain test', function () { let delegate3; let adminProject1; + const gasUsage = {}; before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 5800000, + gasLimit: 6700000, total_accounts: 10, }); - testrpc.listen(8546, '127.0.0.1'); + testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8546'); + web3 = new Web3('ws://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[1]; delegate1 = accounts[2]; @@ -53,12 +57,31 @@ describe('DelegationChain test', function () { after((done) => { testrpc.close(); + // console.log(gasUsage); done(); }); it('Should deploy LiquidPledging contract', async () => { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); + let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + let admins = await PledgeAdmins.new(web3); + + let bytecode = lpData.LiquidPledgingMockByteCode; + bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library + bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + + let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ + arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], + data: bytecode, + }).send({ + from: accounts[0], + gas: 6700000, + gasPrice: 1, + }); + + liquidPledging = new LiquidPledging(web3, lp._address); + await storage.changeOwnership(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); @@ -76,11 +99,11 @@ describe('DelegationChain test', function () { }); it('Should allow previous delegate to transfer pledge', async () => { - await liquidPledging.donate(1, 2, {from: giver1, value: 1000, $extraGas: 50000}); + await liquidPledging.donate(1, 2, {from: giver1, value: 1000}); // add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); // delegate 1 transfer pledge back to self, thus undelegating delegate2 - await liquidPledging.transfer(2, 3, 1000, 2, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 3, 1000, 2, {from: delegate1}); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[2].amount, 1000); @@ -151,13 +174,13 @@ describe('DelegationChain test', function () { it('Should not append delegate on veto delegation', async () => { // propose the delegation - await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1, $extraGas: 100000 }); + await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1 }); const origPledge = await liquidPledging.getPledge(2); assert.equal(origPledge.amount, '0'); // veto the delegation - await liquidPledging.transfer(1, 5, 1000, 2, { from: giver1, $extraGas: 100000 }); + await liquidPledging.transfer(1, 5, 1000, 2, { from: giver1 }); const currentPledge = await liquidPledging.getPledge(2); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 34dc488..f7c4aee 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -4,6 +4,9 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); +const lpData = require('../build/LiquidPledgingMock.sol'); +const EternalStorage = require('../js/eternalStorage'); +const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); const { utils } = Web3; @@ -38,13 +41,13 @@ describe('LiquidPledging test', function () { before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 5800000, + gasLimit: 6700000, total_accounts: 10, }); - testrpc.listen(8546, '127.0.0.1'); + testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8546'); + web3 = new Web3('ws://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[1]; delegate1 = accounts[2]; @@ -57,13 +60,31 @@ describe('LiquidPledging test', function () { }); after((done) => { - testrpc.close(); + // testrpc.close(); done(); }); it('Should deploy LiquidPledging contract', async () => { vault = await LPVault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); + let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + let admins = await PledgeAdmins.new(web3); + + let bytecode = lpData.LiquidPledgingMockByteCode; + bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library + bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + + let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ + arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], + data: bytecode, + }).send({ + from: accounts[0], + gas: 6700000, + gasPrice: 1, + }); + + liquidPledging = new LiquidPledging(web3, lp._address); + await storage.changeOwnership(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); @@ -105,7 +126,7 @@ describe('LiquidPledging test', function () { assert.equal(res2[0], utils.toWei('0.5')); assert.equal(res2[1], 1); // One delegate - const d = await liquidPledging.getPledgeDelegate(2, 1); + const d = await liquidPledging.getPledgeDelegate(2, 0); assert.equal(d[0], 2); assert.equal(d[1], delegate1); assert.equal(d[2], 'Delegate1'); @@ -215,8 +236,9 @@ describe('LiquidPledging test', function () { assert.equal(st.admins[3].canceled, true); }); it('Should not allow to withdraw from a canceled project', async () => { - const st = await liquidPledgingState.getState(liquidPledging); - assert.equal(utils.fromWei(st.pledges[5].amount), 0.05); + const p = await liquidPledging.getPledge(5); + assert.equal(utils.fromWei(p.amount), 0.05); + await assertFail(async () => { await liquidPledging.withdraw(5, utils.toWei('0.01'), { from: adminProject1 }); }); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 9d0cec9..22705d2 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -4,6 +4,9 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); +const lpData = require('../build/LiquidPledgingMock.sol'); +const EternalStorage = require('../js/eternalStorage'); +const PledgeAdmins = require('../js/pledgeAdmins'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; @@ -35,7 +38,7 @@ describe('NormalizePledge test', function () { before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 5800000, + gasLimit: 6700000, total_accounts: 10, }); @@ -58,7 +61,25 @@ describe('NormalizePledge test', function () { it('Should deploy LiquidPledging contract', async () => { vault = await Vault.new(web3, accounts[0], accounts[1]); - liquidPledging = await LiquidPledging.new(web3, vault.$address, accounts[0], accounts[1], { gas: 5800000 }); + let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + let admins = await PledgeAdmins.new(web3); + + let bytecode = lpData.LiquidPledgingMockByteCode; + bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library + bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + + let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ + arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], + data: bytecode, + }).send({ + from: accounts[0], + gas: 6700000, + gasPrice: 1, + }); + + liquidPledging = new LiquidPledging(web3, lp._address); + await storage.changeOwnership(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/Vault.js b/test/Vault.js index c1e8215..c5ef56a 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -4,6 +4,9 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); +const lpData = require('../build/LiquidPledgingMock.sol'); +const EternalStorage = require('../js/eternalStorage'); +const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); const LiquidPledging = liquidpledging.LiquidPledgingMock; @@ -29,7 +32,7 @@ describe('Vault test', function () { before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 6500000, + gasLimit: 6700000, total_accounts: 10, }); @@ -51,7 +54,25 @@ describe('Vault test', function () { it('Should deploy Vault contract', async function () { vault = await Vault.new(web3, escapeHatchCaller, escapeHatchDestination, { from: vaultOwner }); - liquidPledging = await LiquidPledging.new(web3, vault.$address, escapeHatchCaller, escapeHatchDestination, { gas: 6500000 }); + let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + let admins = await PledgeAdmins.new(web3); + + let bytecode = lpData.LiquidPledgingMockByteCode; + bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library + bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + + let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ + arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], + data: bytecode, + }).send({ + from: accounts[0], + gas: 6700000, + gasPrice: 1, + }); + + liquidPledging = new LiquidPledging(web3, lp._address); + await storage.changeOwnership(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address, { from: vaultOwner }); liquidPledgingState = new LiquidPledgingState(liquidPledging); diff --git a/test/helpers/assertFail.js b/test/helpers/assertFail.js index 123c3df..52897e8 100644 --- a/test/helpers/assertFail.js +++ b/test/helpers/assertFail.js @@ -6,7 +6,7 @@ module.exports = async function(callback) { try { await callback(); } catch (error) { - if (error.message.includes("invalid opcode")) web3_error_thrown = true; + if (error.message.includes("invalid opcode") || error.message.includes('revert')) web3_error_thrown = true; } assert.ok(web3_error_thrown, "Transaction should fail"); }; From e5163ac3a8de5e41ef63f9611e96b9c49038da5b Mon Sep 17 00:00:00 2001 From: perissology Date: Wed, 24 Jan 2018 09:57:03 -0800 Subject: [PATCH 18/52] Pass Pledge instead of pledgeId using the giveth_v1 repo tag implementation as a reference... Passing pledgeId's around, on average throughout the test/NormalOperations.js tests, gas usage increased by 229%. This commit reduces average gas consumption for the test/NormalOperations.js tests to 148%. Mostly by saving delegate calls. --- contracts/LiquidPledging.sol | 191 ++++++++++---------- contracts/Pledges.sol | 25 ++- contracts/test/TestSimpleDelegatePlugin.sol | 67 +++++++ 3 files changed, 183 insertions(+), 100 deletions(-) create mode 100644 contracts/test/TestSimpleDelegatePlugin.sol diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index c306996..2f070c1 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -70,7 +70,7 @@ contract LiquidPledging is LiquidPledgingBase { require(amount > 0); vault.transfer(amount); // Sends the `msg.value` (in wei) to the `vault` - uint64 idPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory p = _storage.findOrCreatePledge( idGiver, new uint64[](0), // Creates empty array for delegationChain 0, @@ -80,13 +80,12 @@ contract LiquidPledging is LiquidPledgingBase { ); - uint pAmount = _storage.getPledgeAmount(idPledge); - pAmount += amount; - _storage.setPledgeAmount(idPledge, pAmount); + p.amount += amount; + _storage.setPledgeAmount(p.id, p.amount); - Transfer(0, idPledge, amount); // An event + Transfer(0, p.id, amount); // An event - transfer(idGiver, idPledge, amount, idReceiver); // LP accounting + transfer(idGiver, uint64(p.id), amount, idReceiver); // LP accounting } /// @notice Transfers amounts between pledges for internal accounting @@ -117,9 +116,9 @@ contract LiquidPledging is LiquidPledgingBase { if (p.owner == idSender) { if (receiverAdminType == PledgeAdmins.PledgeAdminType.Giver) { - transferOwnershipToGiver(idPledge, amount, idReceiver); + transferOwnershipToGiver(p, amount, idReceiver); } else if (receiverAdminType == PledgeAdmins.PledgeAdminType.Project) { - transferOwnershipToProject(idPledge, amount, idReceiver); + transferOwnershipToProject(p, amount, idReceiver); } else if (receiverAdminType == PledgeAdmins.PledgeAdminType.Delegate) { uint recieverDIdx = getDelegateIdx(p, idReceiver); @@ -129,26 +128,26 @@ contract LiquidPledging is LiquidPledgingBase { // intendedProject by the owner if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, Pledges.PledgeState.Pledged); - doTransfer(idPledge, toPledge, amount); + doTransfer(p, toPledge, amount); } else { - undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + undelegate(p, amount, p.delegationChain.length - receiverDIdx - 1); } } else { // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, // so we want to reset the delegationChain - idPledge = undelegate( - idPledge, + p = undelegate( + p, amount, p.delegationChain.length ); - appendDelegate(idPledge, amount, idReceiver); + appendDelegate(p, amount, idReceiver); } } else { @@ -167,7 +166,7 @@ contract LiquidPledging is LiquidPledgingBase { if (receiverAdminType == PledgeAdmins.PledgeAdminType.Giver) { // Only transfer to the Giver who owns the pldege assert(p.owner == idReceiver); - undelegate(idPledge, amount, p.delegationChain.length); + undelegate(p, amount, p.delegationChain.length); return; } @@ -177,30 +176,30 @@ contract LiquidPledging is LiquidPledgingBase { // And not in the delegationChain if (receiverDIdx == NOTFOUND) { - idPledge = undelegate( - idPledge, + p = undelegate( + p, amount, p.delegationChain.length - senderDIdx - 1 ); - appendDelegate(idPledge, amount, idReceiver); + appendDelegate(p, amount, idReceiver); // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and // the receiver is appended at the end of the delegationChain } else if (receiverDIdx > senderDIdx) { - idPledge = undelegate( - idPledge, + p = undelegate( + p, amount, p.delegationChain.length - senderDIdx - 1 ); - appendDelegate(idPledge, amount, idReceiver); + appendDelegate(p, amount, idReceiver); // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? undelegate( - idPledge, + p, amount, p.delegationChain.length - receiverDIdx - 1 ); @@ -211,12 +210,12 @@ contract LiquidPledging is LiquidPledgingBase { // And the receiver is a Project, all the delegates after the sender // are removed and the amount is pre-committed to the project if (receiverAdminType == PledgeAdmins.PledgeAdminType.Project) { - idPledge = undelegate( - idPledge, + p = undelegate( + p, amount, p.delegationChain.length - senderDIdx - 1 ); - proposeAssignProject(idPledge, amount, idReceiver); + proposeAssignProject(p, amount, idReceiver); return; } } @@ -234,7 +233,7 @@ contract LiquidPledging is LiquidPledgingBase { require(p.pledgeState == Pledges.PledgeState.Pledged); checkAdminOwner(p.owner); - uint64 idNewPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory newPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -243,9 +242,9 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.PledgeState.Paying ); - doTransfer(idPledge, idNewPledge, amount); + doTransfer(p, newPledge, amount); - vault.authorizePayment(bytes32(idNewPledge), _storage.getAdminAddr(p.owner), amount); + vault.authorizePayment(bytes32(newPledge.id), _storage.getAdminAddr(p.owner), amount); } /// @notice `onlyVault` Confirms a withdraw request changing the Pledges.PledgeState @@ -253,11 +252,12 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that is to be withdrawn /// @param amount Quantity of ether (in wei) to be withdrawn function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + //TODO don't fetch entire pledge Pledges.Pledge memory p = _storage.findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Paying); - uint64 idNewPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory newPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -266,7 +266,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.PledgeState.Paid ); - doTransfer(idPledge, idNewPledge, amount); + doTransfer(p, newPledge, amount); } /// @notice `onlyVault` Cancels a withdraw request, changing the Pledges.PledgeState @@ -276,10 +276,10 @@ contract LiquidPledging is LiquidPledgingBase { function cancelPayment(uint64 idPledge, uint amount) public onlyVault { Pledges.Pledge memory p = _storage.findPledge(idPledge); - require(p.pledgeState == Pledges.PledgeState.Paying); //TODO change to revert???????????????????????????? + require(p.pledgeState == Pledges.PledgeState.Paying); // When a payment is canceled, never is assigned to a project. - uint64 oldPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory oldPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -290,7 +290,7 @@ contract LiquidPledging is LiquidPledgingBase { oldPledge = normalizePledge(oldPledge); - doTransfer(idPledge, oldPledge, amount); + doTransfer(p, oldPledge, amount); } /// @notice Changes the `project.canceled` flag to `true`; cannot be undone @@ -306,6 +306,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param amount Quantity of ether (in wei) to be transfered to the /// `oldPledge` function cancelPledge(uint64 idPledge, uint amount) public { + //TODO fetch idPledge? OR return Pledge from this call? idPledge = normalizePledge(idPledge); Pledges.Pledge memory p = _storage.findPledge(idPledge); @@ -313,8 +314,9 @@ contract LiquidPledging is LiquidPledgingBase { checkAdminOwner(p.owner); - uint64 oldPledge = getOldestPledgeNotCanceled(p.oldPledge); - doTransfer(idPledge, oldPledge, amount); + uint64 oldPledgeId = getOldestPledgeNotCanceled(p.oldPledge); + Pledges.Pledge memory oldPledge = _storage.findPledge(oldPledgeId); + doTransfer(p, oldPledge, amount); } @@ -408,22 +410,20 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice `transferOwnershipToProject` allows for the transfer of /// ownership to the project, but it can also be called by a project /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge Id of the pledge to be transfered. + /// @param p the pledge to be transfered. /// @param amount Quantity of value that's being transfered /// @param idReceiver The new owner of the project (or self to un-delegate) function transferOwnershipToProject( - uint64 idPledge, + Pledges.Pledge p, uint amount, uint64 idReceiver ) internal { - Pledges.Pledge memory p = _storage.findPledge(idPledge); - // Ensure that the pledge is not already at max pledge depth // and the project has not been canceled require(_storage.getPledgeLevel(p.oldPledge) < MAX_INTERPROJECT_LEVEL); require(!_storage.isProjectCanceled(idReceiver)); - uint64 oldPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory oldPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -431,30 +431,30 @@ contract LiquidPledging is LiquidPledgingBase { p.oldPledge, Pledges.PledgeState.Pledged ); - uint64 toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( idReceiver, // Set the new owner new uint64[](0), // clear the delegation chain 0, 0, - oldPledge, + uint64(oldPledge.id), Pledges.PledgeState.Pledged ); - doTransfer(idPledge, toPledge, amount); + doTransfer(p, toPledge, amount); } /// @notice `transferOwnershipToGiver` allows for the transfer of /// value back to the Giver, value is placed in a pledged state /// without being attached to a project, delegation chain, or time line. - /// @param idPledge Id of the pledge to be transfered. + /// @param p the pledge to be transfered. /// @param amount Quantity of value that's being transfered /// @param idReceiver The new owner of the pledge function transferOwnershipToGiver( - uint64 idPledge, + Pledges.Pledge p, uint amount, uint64 idReceiver ) internal { - uint64 toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( idReceiver, new uint64[](0), 0, @@ -462,20 +462,19 @@ contract LiquidPledging is LiquidPledgingBase { 0, Pledges.PledgeState.Pledged ); - doTransfer(idPledge, toPledge, amount); + doTransfer(p, toPledge, amount); } /// @notice `appendDelegate` allows for a delegate to be added onto the /// end of the delegate chain for a given Pledge. - /// @param idPledge Id of the pledge thats delegate chain will be modified. + /// @param p the pledge thats delegate chain will be modified. /// @param amount Quantity of value that's being chained. /// @param idReceiver The delegate to be added at the end of the chain function appendDelegate( - uint64 idPledge, + Pledges.Pledge p, uint amount, uint64 idReceiver ) internal { - Pledges.Pledge memory p = _storage.findPledge(idPledge); require(p.delegationChain.length < MAX_DELEGATES); uint64[] memory newDelegationChain = new uint64[]( @@ -488,7 +487,7 @@ contract LiquidPledging is LiquidPledgingBase { // Make the last item in the array the idReceiver newDelegationChain[p.delegationChain.length] = idReceiver; - uint64 toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( p.owner, newDelegationChain, 0, @@ -496,22 +495,21 @@ contract LiquidPledging is LiquidPledgingBase { p.oldPledge, Pledges.PledgeState.Pledged ); - doTransfer(idPledge, toPledge, amount); + doTransfer(p, toPledge, amount); } /// @notice `appendDelegate` allows for a delegate to be added onto the /// end of the delegate chain for a given Pledge. - /// @param idPledge Id of the pledge thats delegate chain will be modified. + /// @param p the pledge thats delegate chain will be modified. /// @param amount Quantity of value that's shifted from delegates. /// @param q Number (or depth) of delegates to remove /// @return toPledge The id for the pledge being adjusted or created function undelegate( - uint64 idPledge, + Pledges.Pledge p, uint amount, uint q - ) internal returns (uint64) + ) internal returns (Pledges.Pledge) { - Pledges.Pledge memory p = _storage.findPledge(idPledge); uint64[] memory newDelegationChain = new uint64[]( p.delegationChain.length - q ); @@ -519,7 +517,7 @@ contract LiquidPledging is LiquidPledgingBase { for (uint i=0; i= amount); pFrom.amount -= amount; @@ -582,8 +576,8 @@ contract LiquidPledging is LiquidPledgingBase { pTo.amount += amount; _storage.setPledgeAmount(pTo.id, pTo.amount); - Transfer(from, to, amount); - callPlugins(false, from, to, amount); + Transfer(pFrom.id, pTo.id, amount); + callPlugins(false, pFrom, pTo, amount); } /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: @@ -604,18 +598,21 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge This is the id of the pledge that will be normalized /// @return The normalized Pledge! function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledges.Pledge memory p = _storage.findPledge(idPledge); + return uint64(normalizePledge(p).id); + } + + function normalizePledge(Pledges.Pledge p) internal returns(Pledges.Pledge) { // Check to make sure this pledge hasn't already been used // or is in the process of being used if (p.pledgeState != Pledges.PledgeState.Pledged) { - return idPledge; + return p; } // First send to a project if it's proposed and committed if ((p.intendedProject > 0) && ( getTime() > p.commitTime)) { - uint64 oldPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory oldPledge = _storage.findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -623,25 +620,26 @@ contract LiquidPledging is LiquidPledgingBase { p.oldPledge, Pledges.PledgeState.Pledged ); - uint64 toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( p.intendedProject, new uint64[](0), 0, 0, - oldPledge, + uint64(oldPledge.id), Pledges.PledgeState.Pledged ); - doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _storage.findPledge(idPledge); + doTransfer(p, toPledge, p.amount); + p = toPledge; } - toPledge = getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - doTransfer(idPledge, toPledge, p.amount); + uint64 oldestPledgeId = getOldestPledgeNotCanceled(uint64(p.id)); + if (p.id != oldestPledgeId) { + toPledge = _storage.findPledge(oldestPledgeId); + doTransfer(p, toPledge, p.amount); + p = toPledge; } - return toPledge; + return p; } ///////////// @@ -704,26 +702,25 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice `callPluginsPledge` is used to apply plugin calls to /// the delegate chain and the intended project if there is one. /// It does so in either a transferring or receiving context based - /// on the `idPledge` and `fromPledge` parameters. + /// on the `p` and `fromPledge` parameters. /// @param before This toggle determines whether the plugin call is occuring /// before or after a transfer. - /// @param idPledge This is the Id of the pledge on which this plugin + /// @param p This is the pledge on which this plugin /// is being called. /// @param fromPledge This is the Id from which value is being transfered. /// @param toPledge This is the Id that value is being transfered to. /// @param amount The amount of value that is being transfered. function callPluginsPledge( bool before, - uint64 idPledge, + Pledges.Pledge p, uint64 fromPledge, uint64 toPledge, uint amount ) internal returns (uint allowedAmount) { // Determine if callPlugin is being applied in a receiving // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; + uint64 offset = p.id == fromPledge ? 0 : 256; allowedAmount = amount; - Pledges.Pledge memory p = _storage.findPledge(idPledge); // TODO I think we can remove these check b/c the admins array only grows, thus if adminId is out of index, it will just return 0x0 & skip the plugin call // uint adminsSize = _storage.pledgeAdminsCount(); @@ -779,8 +776,8 @@ contract LiquidPledging is LiquidPledgingBase { /// @param amount The amount of value that is being transferred. function callPlugins( bool before, - uint64 fromPledge, - uint64 toPledge, + Pledges.Pledge fromPledge, + Pledges.Pledge toPledge, uint amount ) internal returns (uint allowedAmount) { allowedAmount = amount; @@ -789,8 +786,8 @@ contract LiquidPledging is LiquidPledgingBase { allowedAmount = callPluginsPledge( before, fromPledge, - fromPledge, - toPledge, + uint64(fromPledge.id), + uint64(toPledge.id), allowedAmount ); @@ -798,8 +795,8 @@ contract LiquidPledging is LiquidPledgingBase { allowedAmount = callPluginsPledge( before, toPledge, - fromPledge, - toPledge, + uint64(fromPledge.id), + uint64(toPledge.id), allowedAmount ); } @@ -814,7 +811,7 @@ contract LiquidPledging is LiquidPledgingBase { } // Event Delcerations - event Transfer(uint64 indexed from, uint64 indexed to, uint amount); + event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); } diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index 085b694..393b26f 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -49,11 +49,21 @@ library Pledges { uint64 commitTime, uint64 oldPledge, PledgeState state - ) internal returns (uint64) + ) internal returns (Pledge) { bytes32 hPledge = keccak256(owner, delegationChain, intendedProject, commitTime, oldPledge, state); uint id = _storage.getUIntValue(hPledge); - if (id > 0) return uint64(id); + if (id > 0) { + return Pledge( + id, + getPledgeAmount(_storage, id), //TODO don't fetch this here b/c it may not be needed? + owner, + delegationChain, + intendedProject, + commitTime, + oldPledge, + state); + } id = _storage.stgCollectionAddItem(pledges); _storage.setUIntValue(hPledge, id); @@ -81,7 +91,16 @@ library Pledges { } } - return uint64(id); + return Pledge( + id, + 0, + owner, + delegationChain, + intendedProject, + commitTime, + oldPledge, + state); + } function findPledge(EternalStorage _storage, uint idPledge) internal view returns(Pledge) { diff --git a/contracts/test/TestSimpleDelegatePlugin.sol b/contracts/test/TestSimpleDelegatePlugin.sol new file mode 100644 index 0000000..53c4492 --- /dev/null +++ b/contracts/test/TestSimpleDelegatePlugin.sol @@ -0,0 +1,67 @@ +pragma solidity ^0.4.11; + +import "../LiquidPledging.sol"; + +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleDelegatePlugin { + + uint64 public idDelegate; + LiquidPledging liquidPledging; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + liquidPledging = _liquidPledging; + initPending = true; + } + + function init( + string name, + string url, + uint64 commitTime + ) { + require(initPending); + idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} + +contract TestSimpleDelegatePluginFactory { + + function TestSimpleDelegatePluginFactory ( + LiquidPledging liquidPledging, + string name, + string url, + uint64 commitTime + ) { + TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); + d.init(name, url, commitTime); + } + +} From 544eee350844b42204aee414b36c3e58be4aed05 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 25 Jan 2018 08:31:13 -0800 Subject: [PATCH 19/52] refactor libs to contracts and cleanup LP Base contract --- contracts/LiquidPledging.sol | 107 ++++----- contracts/LiquidPledgingBase.sol | 328 ++++------------------------ contracts/LiquidPledgingPlugins.sol | 77 +++++++ contracts/LiquidPledgingStorage.sol | 12 + contracts/PledgeAdmins.sol | 314 ++++++++++++++------------ contracts/Pledges.sol | 195 ++++++++++++----- js/liquidPledgingState.js | 2 +- test/AdminPlugins.js | 24 +- test/CancelPledge.js | 24 +- test/DelegationChain.js | 24 +- test/NormalOperation.js | 34 +-- test/NormalizePledge.js | 24 +- test/Vault.js | 24 +- 13 files changed, 537 insertions(+), 652 deletions(-) create mode 100644 contracts/LiquidPledgingPlugins.sol create mode 100644 contracts/LiquidPledgingStorage.sol diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 2f070c1..babfd0c 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -63,14 +63,14 @@ contract LiquidPledging is LiquidPledgingBase { checkAdminOwner(idGiver); - PledgeAdmins.PledgeAdminType adminType = _storage.getAdminType(idGiver); - require(adminType == PledgeAdmins.PledgeAdminType.Giver); + PledgeAdminType adminType = getAdminType(idGiver); + require(adminType == PledgeAdminType.Giver); uint amount = msg.value; require(amount > 0); vault.transfer(amount); // Sends the `msg.value` (in wei) to the `vault` - Pledges.Pledge memory p = _storage.findOrCreatePledge( + Pledges.Pledge memory p = findOrCreatePledge( idGiver, new uint64[](0), // Creates empty array for delegationChain 0, @@ -81,7 +81,7 @@ contract LiquidPledging is LiquidPledgingBase { p.amount += amount; - _storage.setPledgeAmount(p.id, p.amount); + setPledgeAmount(p.id, p.amount); Transfer(0, p.id, amount); // An event @@ -102,24 +102,25 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idPledge, uint amount, uint64 idReceiver - ) public { + ) public + { checkAdminOwner(idSender); idPledge = normalizePledge(idPledge); - Pledges.Pledge memory p = _storage.findPledge(idPledge); - PledgeAdmins.PledgeAdminType receiverAdminType = _storage.getAdminType(idReceiver); + Pledges.Pledge memory p = findPledge(idPledge); + PledgeAdminType receiverAdminType = getAdminType(idReceiver); require(p.pledgeState == Pledges.PledgeState.Pledged); // If the sender is the owner of the Pledge if (p.owner == idSender) { - if (receiverAdminType == PledgeAdmins.PledgeAdminType.Giver) { + if (receiverAdminType == PledgeAdminType.Giver) { transferOwnershipToGiver(p, amount, idReceiver); - } else if (receiverAdminType == PledgeAdmins.PledgeAdminType.Project) { + } else if (receiverAdminType == PledgeAdminType.Project) { transferOwnershipToProject(p, amount, idReceiver); - } else if (receiverAdminType == PledgeAdmins.PledgeAdminType.Delegate) { + } else if (receiverAdminType == PledgeAdminType.Delegate) { uint recieverDIdx = getDelegateIdx(p, idReceiver); if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { @@ -128,7 +129,7 @@ contract LiquidPledging is LiquidPledgingBase { // intendedProject by the owner if (recieverDIdx == p.delegationChain.length - 1) { - Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -163,7 +164,7 @@ contract LiquidPledging is LiquidPledgingBase { if (senderDIdx != NOTFOUND) { // And the receiver is another Giver - if (receiverAdminType == PledgeAdmins.PledgeAdminType.Giver) { + if (receiverAdminType == PledgeAdminType.Giver) { // Only transfer to the Giver who owns the pldege assert(p.owner == idReceiver); undelegate(p, amount, p.delegationChain.length); @@ -171,7 +172,7 @@ contract LiquidPledging is LiquidPledgingBase { } // And the receiver is another Delegate - if (receiverAdminType == PledgeAdmins.PledgeAdminType.Delegate) { + if (receiverAdminType == PledgeAdminType.Delegate) { uint receiverDIdx = getDelegateIdx(p, idReceiver); // And not in the delegationChain @@ -209,7 +210,7 @@ contract LiquidPledging is LiquidPledgingBase { // And the receiver is a Project, all the delegates after the sender // are removed and the amount is pre-committed to the project - if (receiverAdminType == PledgeAdmins.PledgeAdminType.Project) { + if (receiverAdminType == PledgeAdminType.Project) { p = undelegate( p, amount, @@ -229,11 +230,11 @@ contract LiquidPledging is LiquidPledgingBase { /// @param amount Quantity of ether (in wei) to be authorized function withdraw(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); // Updates pledge info - Pledges.Pledge memory p = _storage.findPledge(idPledge); + Pledges.Pledge memory p = findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Pledged); checkAdminOwner(p.owner); - Pledges.Pledge memory newPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory newPledge = findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -244,7 +245,7 @@ contract LiquidPledging is LiquidPledgingBase { doTransfer(p, newPledge, amount); - vault.authorizePayment(bytes32(newPledge.id), _storage.getAdminAddr(p.owner), amount); + vault.authorizePayment(bytes32(newPledge.id), getAdminAddr(p.owner), amount); } /// @notice `onlyVault` Confirms a withdraw request changing the Pledges.PledgeState @@ -253,11 +254,11 @@ contract LiquidPledging is LiquidPledgingBase { /// @param amount Quantity of ether (in wei) to be withdrawn function confirmPayment(uint64 idPledge, uint amount) public onlyVault { //TODO don't fetch entire pledge - Pledges.Pledge memory p = _storage.findPledge(idPledge); + Pledges.Pledge memory p = findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Paying); - Pledges.Pledge memory newPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory newPledge = findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -274,12 +275,12 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that's withdraw is to be canceled /// @param amount Quantity of ether (in wei) to be canceled function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledges.Pledge memory p = _storage.findPledge(idPledge); + Pledges.Pledge memory p = findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Paying); // When a payment is canceled, never is assigned to a project. - Pledges.Pledge memory oldPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory oldPledge = findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -297,7 +298,9 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { checkAdminOwner(idProject); - _storage.cancelProject(idProject); + + _storage.stgObjectSetBoolean(PLEDGE_ADMIN, idProject, "canceled", true); + CancelProject(idProject); } /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that @@ -309,13 +312,13 @@ contract LiquidPledging is LiquidPledgingBase { //TODO fetch idPledge? OR return Pledge from this call? idPledge = normalizePledge(idPledge); - Pledges.Pledge memory p = _storage.findPledge(idPledge); + Pledges.Pledge memory p = findPledge(idPledge); require(p.oldPledge != 0); checkAdminOwner(p.owner); uint64 oldPledgeId = getOldestPledgeNotCanceled(p.oldPledge); - Pledges.Pledge memory oldPledge = _storage.findPledge(oldPledgeId); + Pledges.Pledge memory oldPledge = findPledge(oldPledgeId); doTransfer(p, oldPledge, amount); } @@ -345,7 +348,8 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idSender, uint[] pledgesAmounts, uint64 idReceiver - ) public { + ) public + { for (uint i = 0; i < pledgesAmounts.length; i++ ) { uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); uint amount = pledgesAmounts[i] / D64; @@ -417,13 +421,14 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.Pledge p, uint amount, uint64 idReceiver - ) internal { + ) internal + { // Ensure that the pledge is not already at max pledge depth // and the project has not been canceled - require(_storage.getPledgeLevel(p.oldPledge) < MAX_INTERPROJECT_LEVEL); - require(!_storage.isProjectCanceled(idReceiver)); + require(getPledgeLevel(p.oldPledge) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); - Pledges.Pledge memory oldPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory oldPledge = findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -431,7 +436,7 @@ contract LiquidPledging is LiquidPledgingBase { p.oldPledge, Pledges.PledgeState.Pledged ); - Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = findOrCreatePledge( idReceiver, // Set the new owner new uint64[](0), // clear the delegation chain 0, @@ -453,8 +458,9 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.Pledge p, uint amount, uint64 idReceiver - ) internal { - Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( + ) internal + { + Pledges.Pledge memory toPledge = findOrCreatePledge( idReceiver, new uint64[](0), 0, @@ -474,8 +480,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.Pledge p, uint amount, uint64 idReceiver - ) internal { - + ) internal + { require(p.delegationChain.length < MAX_DELEGATES); uint64[] memory newDelegationChain = new uint64[]( p.delegationChain.length + 1 @@ -487,7 +493,7 @@ contract LiquidPledging is LiquidPledgingBase { // Make the last item in the array the idReceiver newDelegationChain[p.delegationChain.length] = idReceiver; - Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = findOrCreatePledge( p.owner, newDelegationChain, 0, @@ -514,10 +520,10 @@ contract LiquidPledging is LiquidPledgingBase { p.delegationChain.length - q ); - for (uint i=0; i= amount); pFrom.amount -= amount; - _storage.setPledgeAmount(pFrom.id, pFrom.amount); + setPledgeAmount(pFrom.id, pFrom.amount); pTo.amount += amount; - _storage.setPledgeAmount(pTo.id, pTo.amount); + setPledgeAmount(pTo.id, pTo.amount); Transfer(pFrom.id, pTo.id, amount); callPlugins(false, pFrom, pTo, amount); @@ -598,7 +605,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge This is the id of the pledge that will be normalized /// @return The normalized Pledge! function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledges.Pledge memory p = _storage.findPledge(idPledge); + Pledges.Pledge memory p = findPledge(idPledge); return uint64(normalizePledge(p).id); } @@ -612,7 +619,7 @@ contract LiquidPledging is LiquidPledgingBase { // First send to a project if it's proposed and committed if ((p.intendedProject > 0) && ( getTime() > p.commitTime)) { - Pledges.Pledge memory oldPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory oldPledge = findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -620,7 +627,7 @@ contract LiquidPledging is LiquidPledgingBase { p.oldPledge, Pledges.PledgeState.Pledged ); - Pledges.Pledge memory toPledge = _storage.findOrCreatePledge( + Pledges.Pledge memory toPledge = findOrCreatePledge( p.intendedProject, new uint64[](0), 0, @@ -634,7 +641,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 oldestPledgeId = getOldestPledgeNotCanceled(uint64(p.id)); if (p.id != oldestPledgeId) { - toPledge = _storage.findPledge(oldestPledgeId); + toPledge = findPledge(oldestPledgeId); doTransfer(p, toPledge, p.amount); p = toPledge; } @@ -671,7 +678,7 @@ contract LiquidPledging is LiquidPledgingBase { uint newAmount; allowedAmount = amount; - address plugin = _storage.getAdminPlugin(adminId); // this takes ~10000 gas + address plugin = getAdminPlugin(adminId); // Checks admin has a plugin assigned and a non-zero amount is requested if (plugin != 0 && allowedAmount > 0) { @@ -723,7 +730,7 @@ contract LiquidPledging is LiquidPledgingBase { allowedAmount = amount; // TODO I think we can remove these check b/c the admins array only grows, thus if adminId is out of index, it will just return 0x0 & skip the plugin call -// uint adminsSize = _storage.pledgeAdminsCount(); +// uint adminsSize = pledgeAdminsCount(); // require(adminsSize >= p.owner); // Always call the plugin on the owner @@ -810,7 +817,7 @@ contract LiquidPledging is LiquidPledgingBase { return now; } - // Event Delcerations + // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 260c553..9ef4b66 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -1,4 +1,5 @@ pragma solidity ^0.4.11; + /* Copyright 2017, Jordi Baylina Contributors: Adrià Massanet , RJ Ewing, Griff @@ -22,7 +23,7 @@ import "./ILiquidPledgingPlugin.sol"; import "giveth-common-contracts/contracts/Escapable.sol"; import "./PledgeAdmins.sol"; import "./Pledges.sol"; -import "./EternalStorage.sol"; +import "./LiquidPledgingStorage.sol"; /// @dev This is an interface for `LPVault` which serves as a secure storage for /// the ETH that backs the Pledges, only after `LiquidPledging` authorizes @@ -35,35 +36,15 @@ interface LPVault { /// @dev `LiquidPledgingBase` is the base level contract used to carry out /// liquidPledging's most basic functions, mostly handling and searching the /// data structures -contract LiquidPledgingBase is Escapable { - using PledgeAdmins for EternalStorage; - using Pledges for EternalStorage; +contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Escapable { - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - EternalStorage public _storage; LPVault public vault; - - mapping (bytes32 => bool) pluginWhitelist; - - bool public usePluginWhitelist = true; - - // Duplicate Events from libs so they are added to the abi - event GiverAdded(uint indexed idGiver); - event GiverUpdated(uint indexed idGiver); - event DelegateAdded(uint indexed idDelegate); - event DelegateUpdated(uint indexed idDelegate); - event ProjectAdded(uint indexed idProject); - event ProjectUpdated(uint indexed idProject); + ///////////// // Modifiers ///////////// - /// @dev The `vault`is the only addresses that can call a function with this /// modifier modifier onlyVault() { @@ -71,12 +52,6 @@ contract LiquidPledgingBase is Escapable { _; } - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint idAdmin) internal constant { - require(msg.sender == _storage.getAdminPlugin(idAdmin) || msg.sender == _storage.getAdminAddr(idAdmin)); - } /////////////// // Constructor @@ -85,238 +60,64 @@ contract LiquidPledgingBase is Escapable { /// @notice The Constructor creates `LiquidPledgingBase` on the blockchain /// @param _vault The vault where the ETH backing the pledges is stored function LiquidPledgingBase( - address _storageAddr, + address _storage, address _vault, address _escapeHatchCaller, address _escapeHatchDestination - ) Escapable(_escapeHatchCaller, _escapeHatchDestination) public { - _storage = EternalStorage(_storageAddr); + ) LiquidPledgingStorage(_storage) + PledgeAdmins(_storage) + Pledges(_storage) + Escapable(_escapeHatchCaller, _escapeHatchDestination) public + { vault = LPVault(_vault); // Assigns the specified vault } - -///////////////////////// -// PledgeAdmin functions -///////////////////////// - - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint idGiver) { - require(isValidPlugin(plugin)); // Plugin check - - return _storage.addGiver( - name, - url, - commitTime, - plugin - ); - } - - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) public - { - _storage.updateGiver( - idGiver, - newAddr, - newName, - newUrl, - newCommitTime - ); - } - - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - return uint64(_storage.addDelegate( - name, - url, - commitTime, - plugin - )); - } - - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) public - { - _storage.updateDelegate( - idDelegate, - newAddr, - newName, - newUrl, - newCommitTime - ); - } - - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - // getProjectLevel will check that parentProject has a `Project` adminType - require(_storage.getProjectLevel(parentProject) < MAX_SUBPROJECT_LEVEL); - } - - return uint64(_storage.addProject( - name, - url, - projectAdmin, - parentProject, - commitTime, - plugin - )); - } - - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) public - { - _storage.updateProject( - idProject, - newAddr, - newName, - newUrl, - newCommitTime - ); - } - - -////////// +///////////////////////////// // Public constant functions -////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { - return _storage.pledgesCount(); - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public constant returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - Pledges.PledgeState pledgeState - ) { - Pledges.Pledge memory p = _storage.findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(_storage.getPledgeDelegateCount(idPledge)); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - pledgeState = p.pledgeState; - } +///////////////////////////// /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint idxDelegate) public view returns( - uint64 idDelegate, + function getDelegate(uint idPledge, uint idxDelegate) public view returns( + uint idDelegate, address addr, string name ) { - idDelegate = uint64(_storage.getPledgeDelegate(idPledge, idxDelegate)); - addr = _storage.getAdminAddr(idDelegate); - name = _storage.getAdminName(idDelegate); + idDelegate = getPledgeDelegate(idPledge, idxDelegate); + addr = getAdminAddr(idDelegate); + name = getAdminName(idDelegate); } - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { - return _storage.pledgeAdminsCount(); - } +//////////////////// +// Internal methods +//////////////////// - function getPledgeAdmin(uint64 idAdmin) public constant returns ( - PledgeAdmins.PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin) - { -// uint p; -// (adminType, addr, name, url, commitTime, p, canceled, plugin) = _storage.getAdmin(idAdmin); - return _storage.getAdmin(idAdmin); -// parentProject = uint64(p); - } - -//////// -// Private methods -/////// - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function getDelegateIdx(Pledges.Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i=0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) return uint64(i); - } - return NOTFOUND; + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint idAdmin) internal constant { + require(msg.sender == getAdminPlugin(idAdmin) || msg.sender == getAdminAddr(idAdmin)); } /// @notice A getter to find the longest commitTime out of the owner and all /// the delegates for a specified pledge /// @param p The Pledge being queried /// @return The maximum commitTime out of the owner and all the delegates - function maxCommitTime(Pledges.Pledge p) internal view returns(uint commitTime) { - uint adminsSize = _storage.pledgeAdminsCount(); + function maxCommitTime(Pledge p) internal view returns(uint commitTime) { + uint adminsSize = numberOfPledgeAdmins(); require(adminsSize >= p.owner); - commitTime = _storage.getAdminCommitTime(p.owner); // start with the owner's commitTime + commitTime = getAdminCommitTime(p.owner); // start with the owner's commitTime - for (uint i=0; i= p.delegationChain[i]); - uint delegateCommitTime = _storage.getAdminCommitTime(p.delegationChain[i]); + uint delegateCommitTime = getAdminCommitTime(p.delegationChain[i]); // If a delegate's commitTime is longer, make it the new commitTime - if (delegateCommitTime > commitTime) commitTime = delegateCommitTime; + if (delegateCommitTime > commitTime) { + commitTime = delegateCommitTime; + } } } @@ -327,58 +128,23 @@ contract LiquidPledgingBase is Escapable { uint64 idPledge ) internal view returns(uint64) { - if (idPledge == 0) return 0; - uint owner = _storage.getPledgeOwner(idPledge); + if (idPledge == 0) { + return 0; + } - PledgeAdmins.PledgeAdminType adminType = _storage.getAdminType(owner); - if (adminType == PledgeAdmins.PledgeAdminType.Giver) return idPledge; - assert(adminType == PledgeAdmins.PledgeAdminType.Project); + uint owner = getPledgeOwner(idPledge); - if (!_storage.isProjectCanceled(owner)) return idPledge; + PledgeAdminType adminType = getAdminType(owner); + if (adminType == PledgeAdminType.Giver) { + return idPledge; + } + assert(adminType == PledgeAdminType.Project); - uint64 oldPledge = uint64(_storage.getPledgeOldPledge(idPledge)); + if (!isProjectCanceled(owner)) { + return idPledge; + } + + uint64 oldPledge = uint64(getPledgeOldPledge(idPledge)); return getOldestPledgeNotCanceled(oldPledge); } - -/////////////////////////// -// Plugin Whitelist Methods -/////////////////////////// - - function addValidPlugin(bytes32 contractHash) external onlyOwner { - pluginWhitelist[contractHash] = true; - } - - function removeValidPlugin(bytes32 contractHash) external onlyOwner { - pluginWhitelist[contractHash] = false; - } - - function useWhitelist(bool useWhitelist) external onlyOwner { - usePluginWhitelist = useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (!usePluginWhitelist || addr == 0x0) return true; - - bytes32 contractHash = getCodeHash(addr); - - return pluginWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - // new "memory end" including padding - mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) - // store length in memory - mstore(o_code, size) - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } } diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol new file mode 100644 index 0000000..7c1de8d --- /dev/null +++ b/contracts/LiquidPledgingPlugins.sol @@ -0,0 +1,77 @@ +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +import "giveth-common-contracts/contracts/Owned.sol"; + +/// NOTICE: This contract is not using EternalStorage. This is done to save gas. The pluginWhitelist +/// should be fairly small, and would be trivial and relatively cheap to re-add all valid plugins +/// when the LiquidPledging contract is upgraded +contract LiquidPledgingPlugins is Owned { + + mapping (bytes32 => bool) pluginWhitelist; + bool public whitelistDisabled = false; + + function addValidPlugin(bytes32 contractHash) public onlyOwner { + pluginWhitelist[contractHash] = true; + } + + function addValidPlugins(bytes32[] contractHashes) external onlyOwner { + for (var i = 0; i < contractHashes.length; i++) { + addValidPlugin(contractHashes[i]); + } + } + + function removeValidPlugin(bytes32 contractHash) external onlyOwner { + pluginWhitelist[contractHash] = false; + } + + function useWhitelist(bool useWhitelist) external onlyOwner { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + bytes32 contractHash = getCodeHash(addr); + + return pluginWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + // new "memory end" including padding + mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) + // store length in memory + mstore(o_code, size) + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} \ No newline at end of file diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol new file mode 100644 index 0000000..f7573bc --- /dev/null +++ b/contracts/LiquidPledgingStorage.sol @@ -0,0 +1,12 @@ +pragma solidity ^0.4.18; + +import "./EternalStorage.sol"; + +contract LiquidPledgingStorage { + + EternalStorage public _storage; + + function LiquidPledgingStorage(address _s) public { + _storage = EternalStorage(_s); + } +} \ No newline at end of file diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 84eb55b..437d101 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -1,23 +1,69 @@ pragma solidity ^0.4.18; +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + import "./ILiquidPledgingPlugin.sol"; import "./EternallyPersistentLib.sol"; +import "./LiquidPledgingStorage.sol"; +import "./LiquidPledgingPlugins.sol"; -//18,446,744,070,000,000,000 uint64 -//1,516,144,546,228,000 uint56 - -library PledgeAdmins { +contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { using EternallyPersistentLib for EternalStorage; + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Constants used when dealing with storage/retrieval of PledgeAdmins + string constant PLEDGE_ADMIN = "PledgeAdmin"; + bytes32 constant PLEDGE_ADMINS_ARRAY = keccak256("pledgeAdmins"); + //TODO we can pack some of these struct values, which should save space. TEST THIS //TODO making functions public may lower deployment cost, but increase gas / tx costs. TEST THIS //TODO is it cheaper to issue a storage check before updating? where should this be done? EternalStorage? - string constant class = "PledgeAdmins"; - bytes32 constant admins = keccak256("pledgeAdmins"); - enum PledgeAdminType { Giver, Delegate, Project } + // Events + event GiverAdded(uint indexed idGiver); + event GiverUpdated(uint indexed idGiver); + event DelegateAdded(uint indexed idDelegate); + event DelegateUpdated(uint indexed idDelegate); + event ProjectAdded(uint indexed idProject); + event ProjectUpdated(uint indexed idProject); + + +/////////////// +// Constructor +/////////////// + + function PledgeAdmins(address _storage) + LiquidPledgingStorage(_storage) + LiquidPledgingPlugins() public + { + } + +//////////////////// +// Public functions +//////////////////// + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address /// @param name The name used to identify the Giver /// @param url The link to the Giver's profile often an IPFS hash @@ -27,27 +73,27 @@ library PledgeAdmins { /// extended functionality /// @return idGiver The id number used to reference this Admin function addGiver( - EternalStorage _storage, string name, string url, uint commitTime, ILiquidPledgingPlugin plugin - ) internal returns (uint idGiver) { - idGiver = _storage.stgCollectionAddItem(admins); + ) public returns (uint idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = _storage.stgCollectionAddItem(PLEDGE_ADMINS_ARRAY); // Save the fields // don't set adminType to save gas, b/c 0 is Giver - _storage.stgObjectSetAddress(class, idGiver, "addr", msg.sender); - _storage.stgObjectSetString(class, idGiver, "name", name); - _storage.stgObjectSetString(class, idGiver, "url", url); - _storage.stgObjectSetUInt(class, idGiver, "commitTime", commitTime); - _storage.stgObjectSetAddress(class, idGiver, "plugin", address(plugin)); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idGiver, "addr", msg.sender); + _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "name", name); + _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "url", url); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idGiver, "commitTime", commitTime); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idGiver, "plugin", address(plugin)); GiverAdded(idGiver); } - event GiverAdded(uint indexed idGiver); - /// @notice Updates a Giver's info to change the address, name, url, or /// commitTime, it cannot be used to change a plugin, and it must be called /// by the current address of the Giver @@ -58,7 +104,6 @@ library PledgeAdmins { /// @param newCommitTime Sets the length of time in seconds the Giver has to /// veto when the Giver's delegates Pledge funds to a project function updateGiver( - EternalStorage _storage, uint idGiver, address newAddr, string newName, @@ -66,20 +111,18 @@ library PledgeAdmins { uint64 newCommitTime ) public { - require(getAdminType(_storage, idGiver) == PledgeAdminType.Giver); // Must be a Giver - require(getAdminAddr(_storage, idGiver) == msg.sender); // Current addr had to send this tx + require(getAdminType(idGiver) == PledgeAdminType.Giver); // Must be a Giver + require(getAdminAddr(idGiver) == msg.sender); // Current addr had to send this tx // Save the fields - _storage.stgObjectSetAddress(class, idGiver, "addr", newAddr); - _storage.stgObjectSetString(class, idGiver, "name", newName); - _storage.stgObjectSetString(class, idGiver, "url", newUrl); - _storage.stgObjectSetUInt(class, idGiver, "commitTime", newCommitTime); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idGiver, "addr", newAddr); + _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "name", newName); + _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "url", newUrl); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idGiver, "commitTime", newCommitTime); GiverUpdated(idGiver); } - event GiverUpdated(uint indexed idGiver); - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr /// @param name The name used to identify the Delegate /// @param url The link to the Delegate's profile often an IPFS hash @@ -89,29 +132,29 @@ library PledgeAdmins { /// @param plugin This is Delegate's liquid pledge plugin allowing for /// extended functionality /// @return idxDelegate The id number used to reference this Delegate within - /// the admins array + /// the PLEDGE_ADMIN array function addDelegate( - EternalStorage _storage, string name, string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) internal returns (uint idDelegate) { - idDelegate = _storage.stgCollectionAddItem(admins);//, idDelegate); + ) public returns (uint idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = _storage.stgCollectionAddItem(PLEDGE_ADMINS_ARRAY); // Save the fields - _storage.stgObjectSetUInt(class, idDelegate, "adminType", uint(PledgeAdminType.Delegate)); - _storage.stgObjectSetAddress(class, idDelegate, "addr", msg.sender); - _storage.stgObjectSetString(class, idDelegate, "name", name); - _storage.stgObjectSetString(class, idDelegate, "url", url); - _storage.stgObjectSetUInt(class, idDelegate, "commitTime", commitTime); - _storage.stgObjectSetAddress(class, idDelegate, "plugin", address(plugin)); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idDelegate, "adminType", uint(PledgeAdminType.Delegate)); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idDelegate, "addr", msg.sender); + _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "name", name); + _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "url", url); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idDelegate, "commitTime", commitTime); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idDelegate, "plugin", address(plugin)); DelegateAdded(idDelegate); } - event DelegateAdded(uint indexed idDelegate); - /// @notice Updates a Delegate's info to change the address, name, url, or /// commitTime, it cannot be used to change a plugin, and it must be called /// by the current address of the Delegate @@ -124,7 +167,6 @@ library PledgeAdmins { /// the time allowed to veto any event must be greater than or equal to /// this time. function updateDelegate( - EternalStorage _storage, uint idDelegate, address newAddr, string newName, @@ -132,20 +174,18 @@ library PledgeAdmins { uint64 newCommitTime ) public { - require(getAdminType(_storage, idDelegate) == PledgeAdminType.Delegate); - require(getAdminAddr(_storage, idDelegate) == msg.sender); // Current addr had to send this tx + require(getAdminType(idDelegate) == PledgeAdminType.Delegate); + require(getAdminAddr(idDelegate) == msg.sender); // Current addr had to send this tx // Save the fields - _storage.stgObjectSetAddress(class, idDelegate, "addr", newAddr); - _storage.stgObjectSetString(class, idDelegate, "name", newName); - _storage.stgObjectSetString(class, idDelegate, "url", newUrl); - _storage.stgObjectSetUInt(class, idDelegate, "commitTime", newCommitTime); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idDelegate, "addr", newAddr); + _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "name", newName); + _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "url", newUrl); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idDelegate, "commitTime", newCommitTime); DelegateUpdated(idDelegate); } - event DelegateUpdated(uint indexed idDelegate); - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr /// @param name The name used to identify the Project /// @param url The link to the Project's profile often an IPFS hash @@ -159,34 +199,37 @@ library PledgeAdmins { /// extended functionality /// @return idProject The id number used to reference this Admin function addProject( - EternalStorage _storage, string name, string url, address projectAdmin, uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) internal returns (uint idProject) { - idProject = _storage.stgCollectionAddItem(admins);//, idProject); + ) public returns (uint idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + // getProjectLevel will check that parentProject has a `Project` adminType + require(getProjectLevel(parentProject) < MAX_SUBPROJECT_LEVEL); + } + + idProject = _storage.stgCollectionAddItem(PLEDGE_ADMINS_ARRAY);//, idProject); // Save the fields - _storage.stgObjectSetUInt(class, idProject, "adminType", uint(PledgeAdminType.Project)); - _storage.stgObjectSetAddress(class, idProject, "addr", projectAdmin); - _storage.stgObjectSetString(class, idProject, "name", name); - _storage.stgObjectSetString(class, idProject, "url", url); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "adminType", uint(PledgeAdminType.Project)); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idProject, "addr", projectAdmin); + _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "name", name); + _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "url", url); - // NOTICE: we do not verify that the parentProject has a `Project` adminType - // this is expected to be done by the calling method - _storage.stgObjectSetUInt(class, idProject, "parentProject", parentProject); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "parentProject", parentProject); - _storage.stgObjectSetUInt(class, idProject, "commitTime", commitTime); - _storage.stgObjectSetAddress(class, idProject, "plugin", address(plugin)); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "commitTime", commitTime); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idProject, "plugin", address(plugin)); ProjectAdded(idProject); } - event ProjectAdded(uint indexed idProject); - /// @notice Updates a Project's info to change the address, name, url, or /// commitTime, it cannot be used to change a plugin or a parentProject, /// and it must be called by the current address of the Project @@ -198,7 +241,6 @@ library PledgeAdmins { /// to veto when the Project delegates to a Delegate and they pledge those /// funds to a project function updateProject( - EternalStorage _storage, uint idProject, address newAddr, string newName, @@ -206,52 +248,27 @@ library PledgeAdmins { uint64 newCommitTime ) public { - require(getAdminType(_storage, idProject) == PledgeAdminType.Project); - require(getAdminAddr(_storage, idProject) == msg.sender); // Current addr had to send this tx + require(getAdminType(idProject) == PledgeAdminType.Project); + require(getAdminAddr(idProject) == msg.sender); // Current addr had to send this tx // Save the fields - _storage.stgObjectSetAddress(class, idProject, "addr", newAddr); - _storage.stgObjectSetString(class, idProject, "name", newName); - _storage.stgObjectSetString(class, idProject, "url", newUrl); - _storage.stgObjectSetUInt(class, idProject, "commitTime", newCommitTime); + _storage.stgObjectSetAddress(PLEDGE_ADMIN, idProject, "addr", newAddr); + _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "name", newName); + _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "url", newUrl); + _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "commitTime", newCommitTime); ProjectUpdated(idProject); } - event ProjectUpdated(uint indexed idAdmin); - function cancelProject(EternalStorage _storage, uint idProject) internal { - _storage.stgObjectSetBoolean(class, idProject, "canceled", true); - CancelProject(idProject); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(EternalStorage _storage, uint projectId) - internal constant returns (bool) - { - require(pledgeAdminsCount(_storage) >= projectId); - - PledgeAdminType adminType = getAdminType(_storage, projectId); - - if (adminType == PledgeAdminType.Giver) return false; - assert(adminType == PledgeAdminType.Project); - - if (getAdminCanceled(_storage, projectId)) return true; - - uint parentProject = getAdminParentProject(_storage, projectId); - if (parentProject == 0) return false; - - return isProjectCanceled(_storage, parentProject); - } - - event CancelProject(uint indexed idProject); +///////////////////////////// +// Public constant functions +///////////////////////////// /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function pledgeAdminsCount(EternalStorage _storage) internal constant returns(uint) { - return _storage.stgCollectionLength(admins); + function numberOfPledgeAdmins() public constant returns(uint) { + return _storage.stgCollectionLength(PLEDGE_ADMINS_ARRAY); } /// @notice A constant getter to check the details of a specified Admin @@ -267,7 +284,7 @@ library PledgeAdmins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getAdmin(EternalStorage _storage, uint idAdmin) internal view returns ( + function getPledgeAdmin(uint idAdmin) public view returns ( PledgeAdminType adminType, address addr, string name, @@ -276,100 +293,119 @@ library PledgeAdmins { uint64 parentProject, bool canceled, address plugin - ) - { - adminType = getAdminType(_storage, idAdmin); - addr = getAdminAddr(_storage, idAdmin); - name = getAdminName(_storage, idAdmin); - url = _storage.stgObjectGetString(class, idAdmin, "url"); - commitTime = uint64(getAdminCommitTime(_storage, idAdmin)); + ) { + adminType = getAdminType(idAdmin); + addr = getAdminAddr(idAdmin); + name = getAdminName(idAdmin); + url = _storage.stgObjectGetString(PLEDGE_ADMIN, idAdmin, "url"); + commitTime = uint64(getAdminCommitTime(idAdmin)); // parentProject & canceled only belong to Project admins, // so don't waste the gas to fetch the data if (adminType == PledgeAdminType.Project) { - parentProject = uint64(getAdminParentProject(_storage, idAdmin)); - canceled = getAdminCanceled(_storage, idAdmin); + parentProject = uint64(getAdminParentProject(idAdmin)); + canceled = getAdminCanceled(idAdmin); } - plugin = getAdminPlugin(_storage, idAdmin); + plugin = getAdminPlugin(idAdmin); + } + + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint projectId) + internal constant returns (bool) + { + require(numberOfPledgeAdmins() >= projectId); + + PledgeAdminType adminType = getAdminType(projectId); + + if (adminType == PledgeAdminType.Giver) { + return false; + } + assert(adminType == PledgeAdminType.Project); + + if (getAdminCanceled(projectId)) { + return true; + } + + uint parentProject = getAdminParentProject(projectId); + if (parentProject == 0) { + return false; + } + + return isProjectCanceled(parentProject); } /// @notice Find the level of authority a specific Project has /// using a recursive loop /// @param idProject The id of the Project being queried /// @return The level of authority a specific Project has - function getProjectLevel(EternalStorage _storage, uint idProject) internal returns(uint) { - assert(getAdminType(_storage, idProject) == PledgeAdminType.Project); - uint parentProject = getAdminParentProject(_storage, idProject); - if (parentProject == 0) return(1); - return getProjectLevel(_storage, parentProject) + 1; + function getProjectLevel(uint idProject) internal returns(uint) { + assert(getAdminType(idProject) == PledgeAdminType.Project); + uint parentProject = getAdminParentProject(idProject); + if (parentProject == 0) { + return(1); + } + return getProjectLevel(parentProject) + 1; } -//////// -// Methods to fetch individual attributes of a PledgeAdmin -/////// - // costs ~10k gas +////////////////////////////////////////////////////// +// Getters for individual attributes of a PledgeAdmin +////////////////////////////////////////////////////// + function getAdminType( - EternalStorage _storage, uint idAdmin ) internal view returns (PledgeAdminType) { - return PledgeAdminType(_storage.stgObjectGetUInt(class, idAdmin, "adminType")); + return PledgeAdminType(_storage.stgObjectGetUInt(PLEDGE_ADMIN, idAdmin, "adminType")); } - // costs ~10k gas function getAdminAddr( - EternalStorage _storage, uint idAdmin ) internal view returns (address) { - return _storage.stgObjectGetAddress(class, idAdmin, "addr"); + return _storage.stgObjectGetAddress(PLEDGE_ADMIN, idAdmin, "addr"); } - // costs ~8k gas function getAdminName( - EternalStorage _storage, uint idAdmin ) internal view returns (string) { - return _storage.stgObjectGetString(class, idAdmin, "name"); + return _storage.stgObjectGetString(PLEDGE_ADMIN, idAdmin, "name"); } - // costs ~10k gas function getAdminParentProject( - EternalStorage _storage, uint idAdmin ) internal view returns (uint) { - return _storage.stgObjectGetUInt(class, idAdmin, "parentProject"); + return _storage.stgObjectGetUInt(PLEDGE_ADMIN, idAdmin, "parentProject"); } - // costs ~10k gas function getAdminCanceled( - EternalStorage _storage, uint idAdmin ) internal view returns (bool) { - return _storage.stgObjectGetBoolean(class, idAdmin, "canceled"); + return _storage.stgObjectGetBoolean(PLEDGE_ADMIN, idAdmin, "canceled"); } - // costs ~10k gas function getAdminPlugin( - EternalStorage _storage, uint idAdmin ) internal view returns (address) { - return _storage.stgObjectGetAddress(class, idAdmin, "plugin"); + return _storage.stgObjectGetAddress(PLEDGE_ADMIN, idAdmin, "plugin"); } - // costs ~10k gas function getAdminCommitTime( - EternalStorage _storage, uint idAdmin ) internal view returns (uint) { - return _storage.stgObjectGetUInt(class, idAdmin, "commitTime"); + return _storage.stgObjectGetUInt(PLEDGE_ADMIN, idAdmin, "commitTime"); } - } diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index 393b26f..e77d8a0 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -1,17 +1,44 @@ pragma solidity ^0.4.18; -import "./EternallyPersistentLib.sol"; +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn -library Pledges { + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +import "./EternallyPersistentLib.sol"; +import "./LiquidPledgingStorage.sol"; + +contract Pledges is LiquidPledgingStorage { using EternallyPersistentLib for EternalStorage; - string constant class = "Pledge"; - bytes32 constant pledges = keccak256("pledges"); + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + + // Constants used when dealing with storage/retrieval of Pledges + string constant PLEDGE = "Pledge"; + bytes32 constant PLEDGES_ARRAY = keccak256("pledges"); enum PledgeState { Pledged, Paying, Paid } struct Pledge { - uint id; + uint id; // the id of this Pledge uint amount; uint64 owner; // PledgeAdmin uint64[] delegationChain; // List of delegates in order of authority @@ -21,10 +48,55 @@ library Pledges { PledgeState pledgeState; // Pledged, Paying, Paid } - function pledgesCount(EternalStorage _storage) internal view returns(uint) { - return _storage.stgCollectionLength(pledges); +/////////////// +// Constructor +/////////////// + + function Pledges(address _storage) + LiquidPledgingStorage(_storage) public + { } + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return _storage.stgCollectionLength(PLEDGES_ARRAY); + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + PledgeState pledgeState + ) { + Pledge memory p = findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(getPledgeDelegateCount(idPledge)); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + /// @notice This creates a Pledge with an initial amount of 0 if one is not /// created already; otherwise it finds the pledge with the specified /// attributes; all pledges technically exist, if the pledge hasn't been @@ -42,7 +114,6 @@ library Pledges { /// @param state The pledge state: Pledged, Paying, or state /// @return The hPledge2idx index number function findOrCreatePledge( - EternalStorage _storage, uint64 owner, uint64[] delegationChain, uint64 intendedProject, @@ -56,7 +127,7 @@ library Pledges { if (id > 0) { return Pledge( id, - getPledgeAmount(_storage, id), //TODO don't fetch this here b/c it may not be needed? + getPledgeAmount(id), //TODO don't fetch this here b/c it may not be needed? owner, delegationChain, intendedProject, @@ -65,28 +136,28 @@ library Pledges { state); } - id = _storage.stgCollectionAddItem(pledges); + id = _storage.stgCollectionAddItem(PLEDGES_ARRAY); _storage.setUIntValue(hPledge, id); - _storage.stgObjectSetUInt(class, id, "owner", owner); + _storage.stgObjectSetUInt(PLEDGE, id, "owner", owner); if (intendedProject > 0) { - _storage.stgObjectSetUInt(class, id, "intendedProject", intendedProject); + _storage.stgObjectSetUInt(PLEDGE, id, "intendedProject", intendedProject); } if (commitTime > 0) { - _storage.stgObjectSetUInt(class, id, "commitTime", commitTime); + _storage.stgObjectSetUInt(PLEDGE, id, "commitTime", commitTime); } if (oldPledge > 0) { - _storage.stgObjectSetUInt(class, id, "oldPledge", oldPledge); + _storage.stgObjectSetUInt(PLEDGE, id, "oldPledge", oldPledge); } if (state != PledgeState.Pledged) { - _storage.stgObjectSetUInt(class, id, "state", uint(state)); + _storage.stgObjectSetUInt(PLEDGE, id, "state", uint(state)); } if (delegationChain.length > 0) { _storage.setUIntValue(keccak256("delegationChain", id, "length"), delegationChain.length); // TODO pack these? possibly add array method to EternalStorage in anticipation of the new solidity abi encoder - for (uint i=0; i < delegationChain.length; i++) { + for (uint i = 0; i < delegationChain.length; i++) { _storage.setUIntValue(keccak256("delegationChain", id, i), delegationChain[i]); } } @@ -100,19 +171,20 @@ library Pledges { commitTime, oldPledge, state); - } - function findPledge(EternalStorage _storage, uint idPledge) internal view returns(Pledge) { - require(idPledge <= pledgesCount(_storage)); + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function findPledge(uint idPledge) internal view returns(Pledge) { + require(idPledge <= numberOfPledges()); - uint amount = getPledgeAmount(_storage, idPledge); - uint owner = getPledgeOwner(_storage, idPledge); - uint intendedProject = getPledgeIntendedProject(_storage, idPledge); - uint commitTime = getPledgeCommitTime(_storage, idPledge); - uint oldPledge = getPledgeOldPledge(_storage, idPledge); - PledgeState state = getPledgeState(_storage, idPledge); - uint64[] memory delegates = getPledgeDelegates(_storage, idPledge); + uint amount = getPledgeAmount(idPledge); + uint owner = getPledgeOwner(idPledge); + uint intendedProject = getPledgeIntendedProject(idPledge); + uint commitTime = getPledgeCommitTime(idPledge); + uint oldPledge = getPledgeOldPledge(idPledge); + PledgeState state = getPledgeState(idPledge); + uint64[] memory delegates = getPledgeDelegates(idPledge); return Pledge( idPledge, @@ -126,22 +198,19 @@ library Pledges { ); } - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - /// @notice A getter that searches the delegationChain for the level of /// authority a specific delegate has within a Pledge - /// @param idPledge The Pledge that will be searched + /// @param p The Pledge that will be searched /// @param idDelegate The specified delegate that's searched for /// @return If the delegate chain contains the delegate with the /// `admins` array index `idDelegate` this returns that delegates /// corresponding index in the delegationChain. Otherwise it returns /// the NOTFOUND constant - function getDelegateIdx(EternalStorage _storage, uint idPledge, uint64 idDelegate) internal view returns(uint64) { - //TODO pack/unpack chain - uint length = getPledgeDelegateCount(_storage, idPledge); - for (uint i=0; i < length; i++) { - if (getPledgeDelegate(_storage, idPledge, i) == idDelegate) return uint64(i); + function getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } } return NOTFOUND; } @@ -150,56 +219,62 @@ library Pledges { /// had using a self-referential loop /// @param idOldPledge The Pledge being queried /// @return The number of old "parent" pledges a specific Pledge had - function getPledgeLevel(EternalStorage _storage, uint idOldPledge) internal view returns(uint) { - if (idOldPledge == 0) return 0; - idOldPledge = _storage.stgObjectGetUInt(class, idOldPledge, "oldPledge"); - return getPledgeLevel(_storage, idOldPledge) + 1; // a loop lookup + function getPledgeLevel(uint idOldPledge) internal view returns(uint) { + if (idOldPledge == 0) { + return 0; + } + idOldPledge = _storage.stgObjectGetUInt(PLEDGE, idOldPledge, "oldPledge"); + return getPledgeLevel(idOldPledge) + 1; // a loop lookup } - function getPledgeOwner(EternalStorage _storage, uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(class, idPledge, "owner"); + +////////////////////////////////////////////////////// +// Getters for individual attributes of a PledgeAdmin +////////////////////////////////////////////////////// + + function getPledgeOwner(uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(PLEDGE, idPledge, "owner"); } - function getPledgeDelegate(EternalStorage _storage, uint idPledge, uint index) internal view returns(uint) { + function getPledgeDelegate(uint idPledge, uint index) internal view returns(uint) { return _storage.getUIntValue(keccak256("delegationChain", idPledge, index)); } - function getPledgeOldPledge(EternalStorage _storage, uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(class, idPledge, "oldPledge"); + function getPledgeOldPledge(uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(PLEDGE, idPledge, "oldPledge"); } - function getPledgeAmount(EternalStorage _storage, uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(class, idPledge, "amount"); + function getPledgeAmount(uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(PLEDGE, idPledge, "amount"); } - function getPledgeIntendedProject(EternalStorage _storage, uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(class, idPledge, "intendedProject"); + function getPledgeIntendedProject(uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(PLEDGE, idPledge, "intendedProject"); } - function getPledgeCommitTime(EternalStorage _storage, uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(class, idPledge, "commitTime"); + function getPledgeCommitTime(uint idPledge) internal view returns(uint) { + return _storage.stgObjectGetUInt(PLEDGE, idPledge, "commitTime"); } - function getPledgeState(EternalStorage _storage, uint idPledge) internal view returns(PledgeState) { - return PledgeState(_storage.stgObjectGetUInt(class, idPledge, "state")); + function getPledgeState(uint idPledge) internal view returns(PledgeState) { + return PledgeState(_storage.stgObjectGetUInt(PLEDGE, idPledge, "state")); } - function getPledgeDelegates(EternalStorage _storage, uint idPledge) internal view returns(uint64[]) { + function getPledgeDelegates(uint idPledge) internal view returns(uint64[]) { //TODO pack/unpack chain - uint length = getPledgeDelegateCount(_storage, idPledge); + uint length = getPledgeDelegateCount(idPledge); uint64[] memory delegates = new uint64[](length); - for (uint i=0; i < length; i++) { - delegates[i] = uint64(getPledgeDelegate(_storage, idPledge, i)); + for (uint i = 0; i < length; i++) { + delegates[i] = uint64(getPledgeDelegate(idPledge, i)); } return delegates; } - function getPledgeDelegateCount(EternalStorage _storage, uint idPledge) internal view returns(uint) { + function getPledgeDelegateCount(uint idPledge) internal view returns(uint) { return _storage.getUIntValue(keccak256("delegationChain", idPledge, "length")); } - function setPledgeAmount(EternalStorage _storage, uint idPledge, uint amount) internal { - _storage.stgObjectSetUInt(class, idPledge, "amount", amount); + function setPledgeAmount(uint idPledge, uint amount) internal { + _storage.stgObjectSetUInt(PLEDGE, idPledge, "amount", amount); } - } diff --git a/js/liquidPledgingState.js b/js/liquidPledgingState.js index 9ab9920..1dea022 100644 --- a/js/liquidPledgingState.js +++ b/js/liquidPledgingState.js @@ -33,7 +33,7 @@ class LiquidPledgingState { const promises = []; for (let i = 0; i < res.nDelegates; i += 1) { promises.push( - this.$lp.getPledgeDelegate(idPledge, i) + this.$lp.getDelegate(idPledge, i) .then(r => ({ id: r.idDelegate, addr: r.addr, diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index 4311e69..d2e391b 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -4,7 +4,6 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); -const lpData = require('../build/LiquidPledgingMock.sol'); const EternalStorage = require('../js/eternalStorage'); const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); @@ -14,7 +13,7 @@ const LiquidPledgingState = liquidpledging.LiquidPledgingState; const simpleProjectPluginFactoryAbi = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginFactoryAbi; const simpleProjectPluginFactoryByteCode = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginFactoryByteCode; const simpleProjectPluginRuntimeByteCode = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginRuntimeByteCode; -const Vault = liquidpledging.LPVault; +const LPVault = liquidpledging.LPVault; const assert = chai.assert; const printState = async (liquidPledgingState) => { @@ -57,27 +56,14 @@ describe('LiquidPledging plugins test', function () { }); it('Should deploy LiquidPledging contract', async function() { - vault = await Vault.new(web3, accounts[0], accounts[1]); - let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let admins = await PledgeAdmins.new(web3); + vault = await LPVault.new(web3, accounts[0], accounts[1]); + const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let bytecode = lpData.LiquidPledgingMockByteCode; - bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library - bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) - let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ - arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], - data: bytecode, - }).send({ - from: accounts[0], - gas: 6700000, - gasPrice: 1, - }); - - liquidPledging = new LiquidPledging(web3, lp._address); await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/CancelPledge.js b/test/CancelPledge.js index df41192..a39a018 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -4,14 +4,13 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); -const lpData = require('../build/LiquidPledgingMock.sol'); const EternalStorage = require('../js/eternalStorage'); const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const Vault = liquidpledging.LPVault; +const LPVault = liquidpledging.LPVault; const assert = chai.assert; const printState = async (liquidPledgingState) => { @@ -54,27 +53,14 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await Vault.new(web3, accounts[0], accounts[1]); - let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let admins = await PledgeAdmins.new(web3); + vault = await LPVault.new(web3, accounts[0], accounts[1]); + const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let bytecode = lpData.LiquidPledgingMockByteCode; - bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library - bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) - let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ - arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], - data: bytecode, - }).send({ - from: accounts[0], - gas: 6700000, - gasPrice: 1, - }); - - liquidPledging = new LiquidPledging(web3, lp._address); await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index ef0beb3..f9c156e 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -4,13 +4,12 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); -const lpData = require('../build/LiquidPledgingMock.sol'); const EternalStorage = require('../js/eternalStorage'); const PledgeAdmins = require('../js/pledgeAdmins'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const Vault = liquidpledging.LPVault; +const LPVault = liquidpledging.LPVault; const assertFail = require('./helpers/assertFail'); const assert = chai.assert; @@ -62,27 +61,14 @@ describe('DelegationChain test', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await Vault.new(web3, accounts[0], accounts[1]); - let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let admins = await PledgeAdmins.new(web3); + vault = await LPVault.new(web3, accounts[0], accounts[1]); + const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let bytecode = lpData.LiquidPledgingMockByteCode; - bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library - bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) - let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ - arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], - data: bytecode, - }).send({ - from: accounts[0], - gas: 6700000, - gasPrice: 1, - }); - - liquidPledging = new LiquidPledging(web3, lp._address); await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index f7c4aee..49673c6 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -4,9 +4,7 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); -const lpData = require('../build/LiquidPledgingMock.sol'); const EternalStorage = require('../js/eternalStorage'); -const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); const { utils } = Web3; @@ -60,32 +58,19 @@ describe('LiquidPledging test', function () { }); after((done) => { - // testrpc.close(); + testrpc.close(); done(); }); it('Should deploy LiquidPledging contract', async () => { vault = await LPVault.new(web3, accounts[0], accounts[1]); - let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let admins = await PledgeAdmins.new(web3); + const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let bytecode = lpData.LiquidPledgingMockByteCode; - bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library - bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) - let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ - arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], - data: bytecode, - }).send({ - from: accounts[0], - gas: 6700000, - gasPrice: 1, - }); - - liquidPledging = new LiquidPledging(web3, lp._address); await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); }); it('Should create a giver', async () => { @@ -126,7 +111,7 @@ describe('LiquidPledging test', function () { assert.equal(res2[0], utils.toWei('0.5')); assert.equal(res2[1], 1); // One delegate - const d = await liquidPledging.getPledgeDelegate(2, 0); + const d = await liquidPledging.getDelegate(2, 0); assert.equal(d[0], 2); assert.equal(d[1], delegate1); assert.equal(d[2], 'Delegate1'); @@ -227,7 +212,7 @@ describe('LiquidPledging test', function () { assert.equal(res7[2], 0); // Delegates assert.equal(res7[3], 0); // Proposed Project assert.equal(res7[4], 0); // commit time - assert.equal(res7[5], 2); // Old Node + assert.equal(res7[5], 2); // Old pledge assert.equal(res7[6], 2); // Peinding paid Paid }); it('Admin of the project1 should be able to cancel project1', async () => { @@ -244,10 +229,7 @@ describe('LiquidPledging test', function () { }); }); it('Delegate should send part of this ETH to project2', async () => { - await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, { - $extraGas: 100000, - from: delegate1, - }); + await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, {from: delegate1}); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[8].amount), 0.03); @@ -257,7 +239,7 @@ describe('LiquidPledging test', function () { assert.equal(st.pledges[8].intendedProject, 4); }); it('Giver should be able to send the remaining to project2', async () => { - await liquidPledging.transfer(1, 5, utils.toWei('0.02'), 4, { from: giver1, $extraGas: 100000 }); + await liquidPledging.transfer(1, 5, utils.toWei('0.02'), 4, { from: giver1 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[5].amount), 0); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 22705d2..1d5b22d 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -4,13 +4,12 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); -const lpData = require('../build/LiquidPledgingMock.sol'); const EternalStorage = require('../js/eternalStorage'); const PledgeAdmins = require('../js/pledgeAdmins'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const Vault = liquidpledging.LPVault; +const LPVault = liquidpledging.LPVault; const assertFail = require('./helpers/assertFail'); const assert = chai.assert; @@ -60,27 +59,14 @@ describe('NormalizePledge test', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await Vault.new(web3, accounts[0], accounts[1]); - let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let admins = await PledgeAdmins.new(web3); + vault = await LPVault.new(web3, accounts[0], accounts[1]); + const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let bytecode = lpData.LiquidPledgingMockByteCode; - bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library - bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) - let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ - arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], - data: bytecode, - }).send({ - from: accounts[0], - gas: 6700000, - gasPrice: 1, - }); - - liquidPledging = new LiquidPledging(web3, lp._address); await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + liquidPledgingState = new LiquidPledgingState(liquidPledging); }); diff --git a/test/Vault.js b/test/Vault.js index c5ef56a..9eff9bc 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -4,14 +4,13 @@ const TestRPC = require('ethereumjs-testrpc'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); -const lpData = require('../build/LiquidPledgingMock.sol'); const EternalStorage = require('../js/eternalStorage'); const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const Vault = liquidpledging.LPVault; +const LPVault = liquidpledging.LPVault; const assert = chai.assert; describe('Vault test', function () { @@ -53,27 +52,14 @@ describe('Vault test', function () { }); it('Should deploy Vault contract', async function () { - vault = await Vault.new(web3, escapeHatchCaller, escapeHatchDestination, { from: vaultOwner }); - let storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let admins = await PledgeAdmins.new(web3); + vault = await LPVault.new(web3, accounts[0], accounts[1]); + const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); - let bytecode = lpData.LiquidPledgingMockByteCode; - bytecode = bytecode.replace(/__contracts\/PledgeAdmins\.sol:PledgeAdm__/g, admins.$address.slice(2)); // solc library - bytecode = bytecode.replace(/__:PledgeAdmins_________________________/g, admins.$address.slice(2)); // yarn sol-compile library + liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) - let lp = await new web3.eth.Contract(lpData.LiquidPledgingMockAbi).deploy({ - arguments: [storage.$address, vault.$address, accounts[0], accounts[0]], - data: bytecode, - }).send({ - from: accounts[0], - gas: 6700000, - gasPrice: 1, - }); - - liquidPledging = new LiquidPledging(web3, lp._address); await storage.changeOwnership(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address, { from: vaultOwner }); liquidPledgingState = new LiquidPledgingState(liquidPledging); await liquidPledging.addGiver('Giver1', '', 0, '0x0', { from: giver1 }); From a5651f218680e93904ec55cd7003012237e7bbc3 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 25 Jan 2018 12:17:28 -0800 Subject: [PATCH 20/52] bit of cleanup --- contracts/EternalStorage.sol | 33 +++++++--------- contracts/EternallyPersistentLib.sol | 58 ++++------------------------ 2 files changed, 21 insertions(+), 70 deletions(-) diff --git a/contracts/EternalStorage.sol b/contracts/EternalStorage.sol index d9cad96..862bc9b 100644 --- a/contracts/EternalStorage.sol +++ b/contracts/EternalStorage.sol @@ -22,74 +22,67 @@ contract EternalStorage is Escapable { return UIntStorage[record]; } - function setUIntValue(bytes32 record, uint value) public onlyOwner - { + function setUIntValue(bytes32 record, uint value) public onlyOwner { UIntStorage[record] = value; } /// Int Storage - function getIntValue(bytes32 record) public view returns (int){ + function getIntValue(bytes32 record) public view returns (int) { return IntStorage[record]; } - function setIntValue(bytes32 record, int value) public onlyOwner - { + function setIntValue(bytes32 record, int value) public onlyOwner { IntStorage[record] = value; } /// Address Storage - function getAddressValue(bytes32 record) public view returns (address){ + function getAddressValue(bytes32 record) public view returns (address) { return AddressStorage[record]; } - function setAddressValue(bytes32 record, address value) public onlyOwner - { + function setAddressValue(bytes32 record, address value) public onlyOwner { AddressStorage[record] = value; } /// String Storage - function getStringValue(bytes32 record) public view returns (string){ + function getStringValue(bytes32 record) public view returns (string) { return StringStorage[record]; } - function setStringValue(bytes32 record, string value) public onlyOwner - { + function setStringValue(bytes32 record, string value) public onlyOwner { StringStorage[record] = value; } /// Bytes Storage - function getBytesValue(bytes32 record) public view returns (bytes){ + function getBytesValue(bytes32 record) public view returns (bytes) { return BytesStorage[record]; } - function setBytesValue(bytes32 record, bytes value) public onlyOwner - { + function setBytesValue(bytes32 record, bytes value) public onlyOwner { BytesStorage[record] = value; } /// Bytes Storage - function getBytes32Value(bytes32 record) public view returns (bytes32){ + function getBytes32Value(bytes32 record) public view returns (bytes32) { return Bytes32Storage[record]; } - function setBytes32Value(bytes32 record, bytes32 value) public onlyOwner - { + function setBytes32Value(bytes32 record, bytes32 value) public onlyOwner { Bytes32Storage[record] = value; } /// Boolean Storage - function getBooleanValue(bytes32 record) public view returns (bool){ + function getBooleanValue(bytes32 record) public view returns (bool) { return BooleanStorage[record]; } - function setBooleanValue(bytes32 record, bool value) public onlyOwner - { + function setBooleanValue(bytes32 record, bool value) public onlyOwner { BooleanStorage[record] = value; } } diff --git a/contracts/EternallyPersistentLib.sol b/contracts/EternallyPersistentLib.sol index 8ecf5a6..1309a77 100644 --- a/contracts/EternallyPersistentLib.sol +++ b/contracts/EternallyPersistentLib.sol @@ -5,6 +5,7 @@ import "./EternalStorage.sol"; library EternallyPersistentLib { // UInt + //TODO if we use assembly here, we can save ~ 600 gas / call, due to skipping the extcodesize check that solidity adds. function stgObjectGetUInt(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (uint) { bytes32 record = keccak256(class, id, fieldName); @@ -32,40 +33,39 @@ library EternallyPersistentLib { function stgObjectGetString(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (string) { bytes32 record = keccak256(class, id, fieldName); - bytes4 sig = bytes4(keccak256("getStringValue(bytes32)")); //Function signature - address a = address(_storage); + bytes4 sig = bytes4(keccak256("getStringValue(bytes32)")); string memory s; assembly { let x := mload(0x40) //Find empty storage location using "free memory pointer" - mstore(x, sig) //Place signature at begining of empty storage + mstore(x, sig) //Place signature at beginning of empty storage mstore(add(x, 0x04), record) //Place first argument directly next to signature let success := call(//This is the critical change (Pop the top stack value) 5000, //5k gas - a, //To addr + _storage, //To addr 0, //No value x, //Inputs are stored at location x 0x24, //Inputs are 36 byes long x, //Store output over input (saves space) 0x80) //Outputs are 32 bytes long - let strL := mload(add(x, 0x20)) // Load the length of the sring + let strL := mload(add(x, 0x20)) // Load the length of the string jumpi(ask_more, gt(strL, 64)) mstore(0x40, add(x, add(strL, 0x40))) s := add(x, 0x20) - // return(x, add(strL, 0x40)) + ask_more : - mstore(x, sig) //Place signature at begining of empty storage + mstore(x, sig) //Place signature at beginning of empty storage mstore(add(x, 0x04), record) //Place first argument directly next to signature success := call(//This is the critical change (Pop the top stack value) 5000, //5k gas - a, //To addr + _storage, //To addr 0, //No value x, //Inputs are stored at location x 0x24, //Inputs are 36 byes long @@ -74,8 +74,6 @@ library EternallyPersistentLib { mstore(0x40, add(x, add(strL, 0x40))) s := add(x, 0x20) - - // return(x, add(strL, 0x40)) } return s; @@ -112,19 +110,9 @@ library EternallyPersistentLib { // Array -// function stgCollectionAddItem(bytes32 idArray, bytes32 idItem) internal returns (uint64) { function stgCollectionAddItem(EternalStorage _storage, bytes32 idArray) internal returns (uint) { - uint length = _storage.getUIntValue(keccak256(idArray, "length")); - - // Set the position in the array as a field so it can be deleted -// _storage.setUIntValue(keccak256(idArray, idItem, "_idx"), length); - - // Add the object to the array -// _storage.setBytes32Value(keccak256(idArray, length), idItem); - - // Increment the size of the array length++; _storage.setUIntValue(keccak256(idArray, "length"), length); @@ -132,27 +120,6 @@ library EternallyPersistentLib { return length; } -// function stgCollectionRemoveItem(EternalStorage _storage, bytes32 idArray, bytes32 idItem) internal { -// uint idx = _storage.getUIntValue(keccak256(idArray, idItem, "_idx")); -// -// uint length = _storage.getUIntValue(keccak256(idArray, "length")); -// length --; -// -// // Move the last element ot the array to this place -// bytes32 lastId = _storage.getBytes32Value(keccak256(idArray, length)); -// _storage.setBytes32Value(keccak256(idArray, idx), lastId); -// _storage.setUIntValue(keccak256(idArray, lastId, "_idx"), idx); -// -// -// // Decrement the length -// _storage.setUIntValue(keccak256(idArray, "length"), length); -// -// // Cleanup the last element of the array -// _storage.setBytes32Value(keccak256(idArray, length), 0); -// -// _storage.setUIntValue(keccak256(idArray, idItem, "_idx"), 0); -// } - function stgCollectionLength(EternalStorage _storage, bytes32 idArray) internal view returns (uint) { return _storage.getUIntValue(keccak256(idArray, "length")); } @@ -161,16 +128,7 @@ library EternallyPersistentLib { return _storage.getBytes32Value(keccak256(idArray, idx)); } - -// bytes32 lastId; - -// function stgGetNewId() internal returns (bytes32) { -// lastId = keccak256(lastId, now); -// return lastId; -// } - function stgUpgrade(EternalStorage _storage, address newContract) internal { _storage.changeOwnership(newContract); } - } \ No newline at end of file From 1942b38c4e42f5bff96214c6e0ec4dc1116218f8 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 25 Jan 2018 15:09:58 -0800 Subject: [PATCH 21/52] update to ganache-cli 7.0.0 w/ ws support --- package-lock.json | 4585 ++++++++++++++++++------------------ package.json | 2 +- test/AdminPlugins.js | 24 +- test/CancelPledge.js | 14 +- test/DelegationChain.js | 41 +- test/NormalOperation.js | 22 +- test/NormalizePledge.js | 21 +- test/Vault.js | 16 +- test/helpers/assertFail.js | 9 +- 9 files changed, 2349 insertions(+), 2385 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50a99d0..725dda6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,144 +1,77 @@ { - "name": "liquidpledging", + "name": "giveth-liquidpledging", "version": "0.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.32.tgz", - "integrity": "sha512-EVq4T1a2GviKiQ75OfxNrGPPhJyXzg9jjORuuwhloZbFdrhT4FHa73sv9OFWBwX7rl2b6bxBVmfxrBQYWYz9tA==", + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.36.tgz", + "integrity": "sha512-sW77BFwJ48YvQp3Gzz5xtAUiXuYOL2aMJKDwiaY3OcvdqBFurtYfOpSa4QrNyDxmOGRFSYzUpabU2m9QrlWE7w==", "requires": { "chalk": "2.3.0", "esutils": "2.0.2", - "js-tokens": "3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "requires": { - "color-convert": "1.9.0" - } - }, - "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - } + "js-tokens": "3.0.2" } }, "@babel/helper-function-name": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.32.tgz", - "integrity": "sha512-ysfIt7p72xm5fjSJsv7fMVN/j+EwIdqu8/MJjt6TqB4wM2r6rFRi0ujBTWDkLGQkRB/P5uDV8qcFCHAHnNzmsg==", + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.36.tgz", + "integrity": "sha512-/SGPOyifPf20iTrMN+WdlY2MbKa7/o4j7B/4IAsdOusASp2icT+Wcdjf4tjJHaXNX8Pe9bpgVxLNxhRvcf8E5w==", "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.32", - "@babel/template": "7.0.0-beta.32", - "@babel/types": "7.0.0-beta.32" + "@babel/helper-get-function-arity": "7.0.0-beta.36", + "@babel/template": "7.0.0-beta.36", + "@babel/types": "7.0.0-beta.36" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.32.tgz", - "integrity": "sha512-bm7lIlizycJQY5SJ3HXWJV4XjSrOt1onzrDcOxUo9FEnKRZDEr/zfi5ar2s5tvvZvve/jGHwZKVKekRw2cjPCQ==", + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.36.tgz", + "integrity": "sha512-vPPcx2vsSoDbcyWr9S3nd0FM3B4hEXnt0p1oKpwa08GwK0fSRxa98MyaRGf8suk8frdQlG1P3mDrz5p/Rr3pbA==", "requires": { - "@babel/types": "7.0.0-beta.32" + "@babel/types": "7.0.0-beta.36" } }, "@babel/template": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.32.tgz", - "integrity": "sha512-DB9sLgX2mfE29vjAkxHlzLyWr31EO9HaYoAM/UsPSsL70Eudl0i25URwIfQT6S6ckeVFnFP1t6PhERVeV4EAHA==", + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.36.tgz", + "integrity": "sha512-mUBi90WRyZ9iVvlWLEdeo8gn/tROyJdjKNC4W5xJTSZL+9MS89rTJSqiaJKXIkxk/YRDL/g/8snrG/O0xl33uA==", "requires": { - "@babel/code-frame": "7.0.0-beta.32", - "@babel/types": "7.0.0-beta.32", - "babylon": "7.0.0-beta.32", + "@babel/code-frame": "7.0.0-beta.36", + "@babel/types": "7.0.0-beta.36", + "babylon": "7.0.0-beta.36", "lodash": "4.17.4" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.32.tgz", - "integrity": "sha512-PvAmyP2IJEBVAuE5yVzrTSWCCN9VMa1eGns8w3w6FYD/ivHSUmS7n+F40Fmjn+0nCQSUFR96wP0CqQ4jxTnF4Q==" - } } }, "@babel/traverse": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.32.tgz", - "integrity": "sha512-dGe2CLduCIZ/iDkbmnqspQguRy5ARvI+zC8TiwFnsJ2YYO2TWK7x2aEwrbkSmi0iPlBP+Syiag7Idc1qNQq74g==", + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.36.tgz", + "integrity": "sha512-OTUb6iSKVR/98dGThRJ1BiyfwbuX10BVnkz89IpaerjTPRhDfMBfLsqmzxz5MiywUOW4M0Clta0o7rSxkfcuzw==", "requires": { - "@babel/code-frame": "7.0.0-beta.32", - "@babel/helper-function-name": "7.0.0-beta.32", - "@babel/types": "7.0.0-beta.32", - "babylon": "7.0.0-beta.32", + "@babel/code-frame": "7.0.0-beta.36", + "@babel/helper-function-name": "7.0.0-beta.36", + "@babel/types": "7.0.0-beta.36", + "babylon": "7.0.0-beta.36", "debug": "3.1.0", - "globals": "10.4.0", + "globals": "11.1.0", "invariant": "2.2.2", "lodash": "4.17.4" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.32.tgz", - "integrity": "sha512-PvAmyP2IJEBVAuE5yVzrTSWCCN9VMa1eGns8w3w6FYD/ivHSUmS7n+F40Fmjn+0nCQSUFR96wP0CqQ4jxTnF4Q==" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-10.4.0.tgz", - "integrity": "sha512-uNUtxIZpGyuaq+5BqGGQHsL4wUlJAXRqOm6g3Y48/CWNGTLONgBibI0lh6lGxjR2HljFYUfszb+mk4WkgMntsA==" - } } }, "@babel/types": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.32.tgz", - "integrity": "sha512-w8+wzVcYCMb9OfaBfay2Vg5hyj7UfBX6qQtA+kB0qsW1h1NH/7xHMwvTZNqkuFBwjz5wxGS2QmaIcC3HH+UoxA==", + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.36.tgz", + "integrity": "sha512-PyAORDO9um9tfnrddXgmWN9e6Sq9qxraQIt5ynqBOSXKA5qvK1kUr+Q3nSzKFdzorsiK+oqcUnAFvEoKxv9D+Q==", "requires": { "esutils": "2.0.2", "lodash": "4.17.4", "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } } }, "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", "dev": true, "requires": { "jsonparse": "1.3.1", @@ -156,9 +89,9 @@ } }, "acorn": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", - "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", "dev": true }, "acorn-dynamic-import": { @@ -185,9 +118,9 @@ "dev": true }, "ajv": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.4.0.tgz", - "integrity": "sha1-MtHPCNvIDEMvQm8S4QslEfa0ZHQ=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { "co": "4.6.0", @@ -197,9 +130,9 @@ } }, "ajv-keywords": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", - "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }, "align-text": { @@ -231,9 +164,12 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.1" + } }, "any-promise": { "version": "1.3.0", @@ -250,10 +186,16 @@ "normalize-path": "2.1.1" } }, + "app-root-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", + "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "dev": true + }, "aproba": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", - "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "are-we-there-yet": { @@ -263,7 +205,7 @@ "dev": true, "requires": { "delegates": "1.0.0", - "readable-stream": "2.3.2" + "readable-stream": "2.3.3" } }, "argv": { @@ -318,7 +260,7 @@ "dev": true, "requires": { "define-properties": "1.1.2", - "es-abstract": "1.7.0" + "es-abstract": "1.10.0" } }, "array-union": { @@ -341,18 +283,24 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "inherits": "2.0.3", "minimalistic-assert": "1.0.0" } @@ -372,9 +320,9 @@ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, "assertion-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", - "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, "ast-types-flow": { "version": "0.0.7", @@ -383,9 +331,9 @@ "dev": true }, "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { "lodash": "4.17.4" } @@ -436,7 +384,7 @@ "babel-register": "6.26.0", "babel-runtime": "6.26.0", "chokidar": "1.7.0", - "commander": "2.12.1", + "commander": "2.12.2", "convert-source-map": "1.5.1", "fs-readdir-recursive": "1.1.0", "glob": "7.1.2", @@ -444,37 +392,46 @@ "output-file-sync": "1.1.2", "path-is-absolute": "1.0.1", "slash": "1.0.0", - "source-map": "0.5.6", + "source-map": "0.5.7", "v8flags": "2.1.1" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } } }, "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { "chalk": "1.1.3", "esutils": "2.0.2", - "js-tokens": "3.0.1" + "js-tokens": "3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } } }, "babel-core": { @@ -494,83 +451,30 @@ "babel-types": "6.26.0", "babylon": "6.18.0", "convert-source-map": "1.5.1", - "debug": "2.6.8", + "debug": "2.6.9", "json5": "0.5.1", "lodash": "4.17.4", "minimatch": "3.0.4", "path-is-absolute": "1.0.1", "private": "0.1.8", "slash": "1.0.0", - "source-map": "0.5.6" + "source-map": "0.5.7" }, "dependencies": { - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.8", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, @@ -580,10 +484,18 @@ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", "dev": true, "requires": { - "babel-code-frame": "6.22.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0", - "babylon": "6.17.4" + "babel-code-frame": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + } } }, "babel-generator": { @@ -598,38 +510,8 @@ "detect-indent": "4.0.0", "jsesc": "1.3.0", "lodash": "4.17.4", - "source-map": "0.5.6", + "source-map": "0.5.7", "trim-right": "1.0.1" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -639,8 +521,8 @@ "dev": true, "requires": { "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-call-delegate": { @@ -650,9 +532,9 @@ "dev": true, "requires": { "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.23.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-define-map": { @@ -665,36 +547,6 @@ "babel-runtime": "6.26.0", "babel-types": "6.26.0", "lodash": "4.17.4" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } } }, "babel-helper-explode-assignable-expression": { @@ -703,9 +555,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -715,10 +567,10 @@ "dev": true, "requires": { "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -727,8 +579,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -737,8 +589,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-optimise-call-expression": { @@ -747,8 +599,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -760,36 +612,6 @@ "babel-runtime": "6.26.0", "babel-types": "6.26.0", "lodash": "4.17.4" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } } }, "babel-helper-remap-async-to-generator": { @@ -799,10 +621,10 @@ "dev": true, "requires": { "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-replace-supers": { @@ -813,10 +635,10 @@ "requires": { "babel-helper-optimise-call-expression": "6.24.1", "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -825,7 +647,7 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0" } }, @@ -835,7 +657,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -844,7 +666,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-syntax-async-functions": { @@ -873,7 +695,7 @@ "requires": { "babel-helper-remap-async-to-generator": "6.24.1", "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -882,7 +704,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -891,7 +713,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -905,76 +727,6 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "lodash": "4.17.4" - }, - "dependencies": { - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.8", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } } }, "babel-plugin-transform-es2015-classes": { @@ -988,10 +740,10 @@ "babel-helper-optimise-call-expression": "6.24.1", "babel-helper-replace-supers": "6.24.1", "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -1000,7 +752,7 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0" } }, @@ -1010,7 +762,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -1019,8 +771,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-for-of": { @@ -1029,7 +781,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -1039,8 +791,8 @@ "dev": true, "requires": { "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-literals": { @@ -1049,7 +801,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -1059,7 +811,7 @@ "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0" } }, @@ -1073,36 +825,6 @@ "babel-runtime": "6.26.0", "babel-template": "6.26.0", "babel-types": "6.26.0" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -1112,7 +834,7 @@ "dev": true, "requires": { "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0" } }, @@ -1123,7 +845,7 @@ "dev": true, "requires": { "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0" } }, @@ -1134,7 +856,7 @@ "dev": true, "requires": { "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -1145,10 +867,10 @@ "requires": { "babel-helper-call-delegate": "6.24.1", "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.26.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -1157,8 +879,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -1167,7 +889,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1177,8 +899,8 @@ "dev": true, "requires": { "babel-helper-regex": "6.26.0", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1187,7 +909,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1196,7 +918,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1206,7 +928,7 @@ "dev": true, "requires": { "babel-helper-regex": "6.26.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "regexpu-core": "2.0.0" } }, @@ -1218,7 +940,7 @@ "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -1236,8 +958,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-polyfill": { @@ -1247,32 +969,14 @@ "dev": true, "requires": { "babel-runtime": "6.26.0", - "core-js": "2.5.1", + "core-js": "2.5.3", "regenerator-runtime": "0.10.5" }, "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } - } - }, - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true } } @@ -1310,17 +1014,9 @@ "babel-plugin-transform-es2015-unicode-regex": "6.24.1", "babel-plugin-transform-exponentiation-operator": "6.24.1", "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.9.0", + "browserslist": "2.11.0", "invariant": "2.2.2", "semver": "5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true - } } }, "babel-register": { @@ -1331,45 +1027,21 @@ "requires": { "babel-core": "6.26.0", "babel-runtime": "6.26.0", - "core-js": "2.5.1", + "core-js": "2.5.3", "home-or-tmp": "2.0.0", "lodash": "4.17.4", "mkdirp": "0.5.1", "source-map-support": "0.4.18" - }, - "dependencies": { - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" - } - }, - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - } } }, "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -1385,110 +1057,78 @@ "lodash": "4.17.4" }, "dependencies": { - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.8", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true } } }, - "babel-traverse": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", - "dev": true, - "requires": { - "babel-code-frame": "6.22.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", - "babylon": "6.17.4", - "debug": "2.6.8", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, "babel-types": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "esutils": "2.0.2", "lodash": "4.17.4", "to-fast-properties": "1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } } }, "babylon": { - "version": "6.17.4", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==", - "dev": true + "version": "7.0.0-beta.36", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.36.tgz", + "integrity": "sha512-rw4YdadGwajAMMRl6a5swhQ0JCOOFyaYCfJ0AsmNBD8uBD/r4J8mux7wBaqavvFKqUKQYWOzA1Speams4YDzsQ==" }, "balanced-match": { "version": "1.0.0", @@ -1517,15 +1157,15 @@ "dev": true }, "bignumber.js": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.2.tgz", - "integrity": "sha1-LR3DfuWWiGfs6pC22k0W5oYI0h0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", + "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==", "dev": true }, "binary-extensions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", - "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" }, "bl": { "version": "1.2.1", @@ -1533,7 +1173,7 @@ "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", "dev": true, "requires": { - "readable-stream": "2.3.2" + "readable-stream": "2.3.3" } }, "block-stream": { @@ -1551,9 +1191,9 @@ "integrity": "sha1-+Xrhlw9B2FF3KDBT6aEgFg5mxh0=" }, "bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, "body-parser": { @@ -1583,12 +1223,6 @@ "ms": "2.0.0" } }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, "qs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", @@ -1636,16 +1270,17 @@ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" }, "browserify-aes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "dev": true, "requires": { "buffer-xor": "1.0.3", - "cipher-base": "1.0.3", + "cipher-base": "1.0.4", "create-hash": "1.1.3", - "evp_bytestokey": "1.0.0", - "inherits": "2.0.3" + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "browserify-cipher": { @@ -1654,9 +1289,9 @@ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "dev": true, "requires": { - "browserify-aes": "1.0.6", + "browserify-aes": "1.1.1", "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.0" + "evp_bytestokey": "1.0.3" } }, "browserify-des": { @@ -1665,7 +1300,7 @@ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "dev": true, "requires": { - "cipher-base": "1.0.3", + "cipher-base": "1.0.4", "des.js": "1.0.0", "inherits": "2.0.3" } @@ -1676,7 +1311,7 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "randombytes": "2.0.5" } }, @@ -1695,7 +1330,7 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "browserify-rsa": "4.0.1", "create-hash": "1.1.3", "create-hmac": "1.1.6", @@ -1705,22 +1340,22 @@ } }, "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "0.2.9" + "pako": "1.0.6" } }, "browserslist": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.9.0.tgz", - "integrity": "sha512-vJEBcDTANoDhSHL46NeOEW5hvQw7It9uCqzeFPQhpawXfnOwnpvW5C97vn1eGJ7iCkSg8wWU0nYObE7d/N95Iw==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.0.tgz", + "integrity": "sha512-mNYp0RNeu1xueGuJFSXkU+K0nH+dBE/gcjtyhtNKfU8hwdrVIfoA7i5iFSjOmzkGdL2QaO7YX9ExiVPE7AY9JA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000770", - "electron-to-chromium": "1.3.27" + "caniuse-lite": "1.0.30000789", + "electron-to-chromium": "1.3.30" } }, "buffer": { @@ -1780,10 +1415,9 @@ "dev": true }, "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "camelcase-keys": { "version": "2.1.0", @@ -1804,9 +1438,15 @@ } }, "caniuse-lite": { - "version": "1.0.30000770", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000770.tgz", - "integrity": "sha1-vI5/ULBzJzOQ22qzVzeJCaFOm9s=", + "version": "1.0.30000789", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000789.tgz", + "integrity": "sha1-Lj2TeyZxM/Y2Ne9/RB+sZjYPyIk=", + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", "dev": true }, "caseless": { @@ -1825,52 +1465,34 @@ } }, "chai": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.0.tgz", - "integrity": "sha1-MxoDkbVcOvh0CunDt0WLwcOAXm0=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "requires": { - "assertion-error": "1.0.2", + "assertion-error": "1.1.0", "check-error": "1.0.2", - "deep-eql": "2.0.2", + "deep-eql": "3.0.1", "get-func-name": "2.0.0", "pathval": "1.1.0", - "type-detect": "4.0.3" - }, - "dependencies": { - "deep-eql": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-2.0.2.tgz", - "integrity": "sha1-sbrAblbwp2d3aG1Qyf63XC7XZ5o=", - "requires": { - "type-detect": "3.0.0" - }, - "dependencies": { - "type-detect": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-3.0.0.tgz", - "integrity": "sha1-RtDMhVOrt7E6NSsNbeov1Y8tm1U=" - } - } - }, - "type-detect": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", - "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=" - } + "type-detect": "4.0.5" } }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { - "ansi-styles": "2.2.1", + "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "supports-color": "4.5.0" } }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -1883,7 +1505,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", - "fsevents": "1.1.2", + "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -1893,18 +1515,19 @@ } }, "ci-info": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", - "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", "dev": true }, "cipher-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "cli-cursor": { @@ -1923,15 +1546,36 @@ "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", + "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", "wrap-ansi": "2.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } } }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, "cmd-shim": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", @@ -1964,9 +1608,9 @@ } }, "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "requires": { "color-name": "1.1.3" } @@ -2006,9 +1650,9 @@ "dev": true }, "commander": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.1.tgz", - "integrity": "sha512-PCNLExLlI5HiPdaJs4pMXwOTHkSCpNQ1QJH9ykZLKtKEyKu3p9HgmH5l97vM8c0IUz6d54l+xEu2GG9yuYrFzA==" + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" }, "compare-func": { "version": "1.3.2", @@ -2032,7 +1676,7 @@ "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.2", + "readable-stream": "2.3.3", "typedarray": "0.0.6" } }, @@ -2076,110 +1720,185 @@ "dev": true }, "conventional-changelog": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.6.tgz", - "integrity": "sha512-AaQRALJYQVbfMs0UYJ3jf5yIAJwGnm/E7ETwzZMwF/3JDMyDaa4agLQomz94pcYiGH7zcrxFcwHApSODOYnunA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.7.tgz", + "integrity": "sha1-kVGmKx2O2y2CcR2r9bfPcQQfgrE=", "dev": true, "requires": { - "conventional-changelog-angular": "1.5.1", - "conventional-changelog-atom": "0.1.1", - "conventional-changelog-codemirror": "0.2.0", - "conventional-changelog-core": "1.9.2", - "conventional-changelog-ember": "0.2.8", - "conventional-changelog-eslint": "0.2.0", - "conventional-changelog-express": "0.2.0", + "conventional-changelog-angular": "1.6.0", + "conventional-changelog-atom": "0.1.2", + "conventional-changelog-codemirror": "0.2.1", + "conventional-changelog-core": "1.9.5", + "conventional-changelog-ember": "0.2.10", + "conventional-changelog-eslint": "0.2.1", + "conventional-changelog-express": "0.2.1", "conventional-changelog-jquery": "0.1.0", "conventional-changelog-jscs": "0.1.0", - "conventional-changelog-jshint": "0.2.0" + "conventional-changelog-jshint": "0.2.1" } }, "conventional-changelog-angular": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.5.1.tgz", - "integrity": "sha512-AnjnPyqHp8yR2IOWsXYOCv6Ly0WC2rLRK04fgAS/5QoA3ovYLSoz9PKB5pcSG3M9lAf40IqZwU3R3G6Hy7XCSA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.0.tgz", + "integrity": "sha1-CiagcfLJ/PzyuGugz79uYwG3W/o=", "dev": true, "requires": { "compare-func": "1.3.2", - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-atom": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.1.tgz", - "integrity": "sha512-6Nlu/+MiD4gi7k3Z+N1vMJWpaPSdvFPWzPGnH4OXewHAxiAl0L/TT9CGgA01fosPxmYr4hMNtD7kyN0tkg8vIA==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.2.tgz", + "integrity": "sha1-Ella1SZ6aTfDTPkAKBscZRmKTGM=", "dev": true, "requires": { - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-cli": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.4.tgz", - "integrity": "sha512-b8B1i01df+Lq5t16L3g8uoEGdzViChIKmIo7TComL4DqqrjrtasRaT+/4OPGcApEgX86JkBqb4KVt85ytQinUw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.5.tgz", + "integrity": "sha1-RsUUliFrdAZYiIPe+m+sWJ6bsx4=", "dev": true, "requires": { "add-stream": "1.0.0", - "conventional-changelog": "1.1.6", + "conventional-changelog": "1.1.7", "lodash": "4.17.4", "meow": "3.7.0", "tempfile": "1.1.1" } }, "conventional-changelog-codemirror": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.0.tgz", - "integrity": "sha512-jUbY98JoKdAOR5k3pOBiKZ+Iz9t2F84hL7x4WjSRW6x7FdeCEUOjyfml+YClE2h/h62Tf3mwur5jSO8upxxc1g==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.1.tgz", + "integrity": "sha1-KZpPcUe681DmyBWPxUlUopHFzAk=", "dev": true, "requires": { - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-core": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.2.tgz", - "integrity": "sha512-L/boGKXaKWrlCU8bHa1QM36Pb/JopCPmekj5SFqqAuBfjya860xX2fAC5Ggelse++Bw39AZ2NrHwBnJrdwLlLw==", + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.5.tgz", + "integrity": "sha1-XbdWba18DLddr0f7spdve/mSjB0=", "dev": true, "requires": { - "conventional-changelog-writer": "2.0.1", - "conventional-commits-parser": "2.0.0", + "conventional-changelog-writer": "2.0.3", + "conventional-commits-parser": "2.1.0", "dateformat": "1.0.12", "get-pkg-repo": "1.4.0", - "git-raw-commits": "1.2.0", + "git-raw-commits": "1.3.0", "git-remote-origin-url": "2.0.0", - "git-semver-tags": "1.2.2", + "git-semver-tags": "1.2.3", "lodash": "4.17.4", - "normalize-package-data": "2.3.8", - "q": "1.5.0", + "normalize-package-data": "2.4.0", + "q": "1.5.1", "read-pkg": "1.1.0", "read-pkg-up": "1.0.1", "through2": "2.0.3" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } } }, "conventional-changelog-ember": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.8.tgz", - "integrity": "sha512-smsh0o/S95n22lrQZrSHYjJrxIGoFl+OFHK+q2KGHA2zRFrW7QilYM7VUjgmB+emzwqFguPjrq+D2U8iPhMNJg==", + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.10.tgz", + "integrity": "sha512-LBBBZO6Q7ib4HhSdyCNVR25OtaXl710UJg1aSHCLmR8AjuXKs3BO8tnbY1MH+D1C+z5IFoEDkpjOddefNTyhCQ==", "dev": true, "requires": { - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-eslint": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.0.tgz", - "integrity": "sha512-WGKnC0bGPD6BHGiRBfYqNGfy6DZDn2jGs1yxPRT8I2796wYdGqsbDF4477o4fdsxUJvckoW2OFPqkmRMQaCHSA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.1.tgz", + "integrity": "sha1-LCoRvrIW+AZJunKDQYApO2h8BmI=", "dev": true, "requires": { - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-express": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.2.0.tgz", - "integrity": "sha512-ujSEmbWfozC1iIjH5Pl7AKtREowvAl10whs1q6c7nZLnoNZK5CmdB2PQ/V42O6rCgUzaLX+ACRW2+g0A/Htqvw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.2.1.tgz", + "integrity": "sha1-g42eHmyQmXA7FQucGaoteBdCvWw=", "dev": true, "requires": { - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-jquery": { @@ -2188,7 +1907,7 @@ "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", "dev": true, "requires": { - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-jscs": { @@ -2197,41 +1916,41 @@ "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", "dev": true, "requires": { - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-jshint": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.0.tgz", - "integrity": "sha512-uUP4c0et6F2teapl+YY2JHFAHD401U5CkgI+P8PyU0y1zS8BdBy6EnhqgZEXhFOp9fPzUdic+Wv/9alOqw3agQ==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.1.tgz", + "integrity": "sha1-hhObs6yZiZ8rF36WF+CbN9mbzzo=", "dev": true, "requires": { "compare-func": "1.3.2", - "q": "1.5.0" + "q": "1.5.1" } }, "conventional-changelog-writer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-2.0.1.tgz", - "integrity": "sha512-X4qC758celQOKw0iUPAsH5sJX6fH6N5dboFc3elXb1/SIKhsYMukhhaxWmxRdtVUSqGt9rZg8giwBQG5B2GeKg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-2.0.3.tgz", + "integrity": "sha512-2E1h7UXL0fhRO5h0CxDZ5EBc5sfBZEQePvuZ+gPvApiRrICUyNDy/NQIP+2TBd4wKZQf2Zm7TxbzXHG5HkPIbA==", "dev": true, "requires": { "compare-func": "1.3.2", - "conventional-commits-filter": "1.0.0", + "conventional-commits-filter": "1.1.1", "dateformat": "1.0.12", - "handlebars": "4.0.10", + "handlebars": "4.0.11", "json-stringify-safe": "5.0.1", "lodash": "4.17.4", "meow": "3.7.0", - "semver": "5.1.1", + "semver": "5.4.1", "split": "1.0.1", "through2": "2.0.3" } }, "conventional-commits-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", - "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.1.tgz", + "integrity": "sha512-bQyatySNKHhcaeKVr9vFxYWA1W1Tdz6ybVMYDmv4/FhOXY1+fchiW07TzRbIQZhVa4cvBwrEaEUQBbCncFSdJQ==", "dev": true, "requires": { "is-subset": "0.1.1", @@ -2239,12 +1958,12 @@ } }, "conventional-commits-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.0.0.tgz", - "integrity": "sha512-8od6g684Fhi5Vpp4ABRv/RBsW1AY6wSHbJHEK6FGTv+8jvAAnlABniZu/FVmX9TcirkHepaEsa1QGkRvbg0CKw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.0.tgz", + "integrity": "sha512-8MD05yN0Zb6aRsZnFX1ET+8rHWfWJk+my7ANCJZBU2mhz7TSB1fk2vZhkrwVy/PCllcTYAP/1T1NiWQ7Z01mKw==", "dev": true, "requires": { - "JSONStream": "1.3.1", + "JSONStream": "1.3.2", "is-text-path": "1.0.1", "lodash": "4.17.4", "meow": "3.7.0", @@ -2254,16 +1973,16 @@ } }, "conventional-recommended-bump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-1.0.2.tgz", - "integrity": "sha512-kC4EvXsc+flKpmD0Aa98qVGG7qGqLsVswVT0ijicXiNPBkGQAOMPYg+JoFjBXAWYWw4Y6RsiEDL+JKLrp0RqXQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-1.1.0.tgz", + "integrity": "sha512-WK0HnYnXd9e8J1YezUlfle+Pz7HB1RYvIH6gPLAXoroQTzDSfNfGM1tHHmdrJw0/4BMr+zw0U9V1WzFEfQwE3w==", "dev": true, "requires": { "concat-stream": "1.6.0", - "conventional-commits-filter": "1.0.0", - "conventional-commits-parser": "2.0.0", - "git-raw-commits": "1.2.0", - "git-semver-tags": "1.2.2", + "conventional-commits-filter": "1.1.1", + "conventional-commits-parser": "2.1.0", + "git-raw-commits": "1.3.0", + "git-semver-tags": "1.2.3", "meow": "3.7.0", "object-assign": "4.1.1" } @@ -2287,9 +2006,9 @@ "dev": true }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", "dev": true }, "core-util-is": { @@ -2313,20 +2032,29 @@ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "elliptic": "6.4.0" } }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "1.0.0" + } + }, "create-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "dev": true, "requires": { - "cipher-base": "1.0.3", + "cipher-base": "1.0.4", "inherits": "2.0.3", "ripemd160": "2.0.1", - "sha.js": "2.4.8" + "sha.js": "2.4.9" } }, "create-hmac": { @@ -2335,12 +2063,12 @@ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "dev": true, "requires": { - "cipher-base": "1.0.3", + "cipher-base": "1.0.4", "create-hash": "1.1.3", "inherits": "2.0.3", "ripemd160": "2.0.1", "safe-buffer": "5.1.1", - "sha.js": "2.4.8" + "sha.js": "2.4.9" } }, "cross-spawn": { @@ -2350,7 +2078,7 @@ "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", - "which": "1.2.14" + "which": "1.3.0" } }, "cryptiles": { @@ -2362,9 +2090,9 @@ } }, "crypto-browserify": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", - "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { "browserify-cipher": "1.0.0", @@ -2374,9 +2102,10 @@ "create-hmac": "1.1.6", "diffie-hellman": "5.0.2", "inherits": "2.0.3", - "pbkdf2": "3.0.12", + "pbkdf2": "3.0.14", "public-encrypt": "4.0.0", - "randombytes": "2.0.5" + "randombytes": "2.0.5", + "randomfill": "1.0.3" } }, "crypto-js": { @@ -2400,7 +2129,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.30" + "es5-ext": "0.10.37" } }, "damerau-levenshtein": { @@ -2450,10 +2179,9 @@ } }, "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" } @@ -2474,7 +2202,7 @@ "decompress-targz": "4.1.1", "decompress-unzip": "4.0.1", "graceful-fs": "4.1.11", - "make-dir": "1.0.0", + "make-dir": "1.1.0", "pify": "2.3.0", "strip-dirs": "2.1.0" } @@ -2567,27 +2295,33 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "requires": { + "type-detect": "4.0.5" + } + }, "deep-equal": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", "dev": true }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", - "dev": true - } + "clone": "1.0.3" } }, "define-properties": { @@ -2598,14 +2332,6 @@ "requires": { "foreach": "2.0.5", "object-keys": "1.0.11" - }, - "dependencies": { - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true - } } }, "defined": { @@ -2667,15 +2393,15 @@ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "miller-rabin": "4.0.1", "randombytes": "2.0.5" } }, "doctrine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", - "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { "esutils": "2.0.2", @@ -2730,21 +2456,30 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.27", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz", - "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=", + "electron-releases": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/electron-releases/-/electron-releases-2.1.0.tgz", + "integrity": "sha512-cyKFD1bTE/UgULXfaueIN1k5EPFzs+FRc/rvCY5tIynefAPqopQEgjr0EzY+U3Dqrk/G4m9tXSPuZ77v6dL/Rw==", "dev": true }, + "electron-to-chromium": { + "version": "1.3.30", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz", + "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==", + "dev": true, + "requires": { + "electron-releases": "2.1.0" + } + }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "brorand": "1.1.0", - "hash.js": "1.1.1", + "hash.js": "1.1.3", "hmac-drbg": "1.0.1", "inherits": "2.0.3", "minimalistic-assert": "1.0.0", @@ -2752,9 +2487,9 @@ } }, "emoji-regex": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.4.2.tgz", - "integrity": "sha1-owtv7jU9QG2Wz7n6dlvcgol+/24=", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", "dev": true }, "emojis-list": { @@ -2769,10 +2504,19 @@ "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", "dev": true }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, "end-of-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { "once": "1.4.0" @@ -2791,20 +2535,12 @@ } }, "errno": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", "dev": true, "requires": { - "prr": "0.0.0" - }, - "dependencies": { - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", - "dev": true - } + "prr": "1.0.1" } }, "error-ex": { @@ -2817,13 +2553,14 @@ } }, "es-abstract": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", - "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", "dev": true, "requires": { "es-to-primitive": "1.1.1", - "function-bind": "1.1.0", + "function-bind": "1.1.1", + "has": "1.0.1", "is-callable": "1.1.3", "is-regex": "1.0.4" } @@ -2840,23 +2577,23 @@ } }, "es5-ext": { - "version": "0.10.30", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz", - "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=", + "version": "0.10.37", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz", + "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=", "dev": true, "requires": { - "es6-iterator": "2.0.1", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } }, "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", + "es5-ext": "0.10.37", "es6-symbol": "3.1.1" } }, @@ -2867,8 +2604,8 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", - "es6-iterator": "2.0.1", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", "es6-set": "0.1.5", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" @@ -2881,8 +2618,8 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", - "es6-iterator": "2.0.1", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" } @@ -2894,7 +2631,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.30" + "es5-ext": "0.10.37" } }, "es6-weak-map": { @@ -2904,8 +2641,8 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.30", - "es6-iterator": "2.0.1", + "es5-ext": "0.10.37", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } }, @@ -2933,29 +2670,42 @@ } }, "eslint-config-airbnb": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-15.0.1.tgz", - "integrity": "sha1-e1GI5bfHS5ss5jn9Xh2rqP12Gu0=", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-15.1.0.tgz", + "integrity": "sha512-m0q9fiMBzDAIbirlGnpJNWToIhdhJmXXnMG+IFflYzzod9231ZhtmGKegKg8E9T8F1YuVaDSU1FnCm5b9iXVhQ==", "dev": true, "requires": { - "eslint-config-airbnb-base": "11.2.0" + "eslint-config-airbnb-base": "11.3.2" } }, "eslint-config-airbnb-base": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.2.0.tgz", - "integrity": "sha1-GancRIGib3CQRUXsBAEWh2AY+FM=", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", - "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz", + "integrity": "sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==", "dev": true, "requires": { - "debug": "2.6.8", - "object-assign": "4.1.1", - "resolve": "1.1.7" + "eslint-restricted-globals": "0.1.1" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "2.6.9", + "resolve": "1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "eslint-module-utils": { @@ -2964,21 +2714,32 @@ "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", "dev": true, "requires": { - "debug": "2.6.8", + "debug": "2.6.9", "pkg-dir": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "eslint-plugin-import": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.6.0.tgz", - "integrity": "sha512-JdkYDmMMjhxW6X/IVclD+vQXO6e2nJJT4cKcyTw95mvBCWkr8THXKFhc+WCvGvOscjGuLQzUB7tBeJddrg2jig==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", + "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", "dev": true, "requires": { "builtin-modules": "1.1.1", "contains-path": "0.1.0", - "debug": "2.6.8", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.2.3", + "eslint-import-resolver-node": "0.3.2", "eslint-module-utils": "2.1.1", "has": "1.0.1", "lodash.cond": "4.5.2", @@ -2986,79 +2747,21 @@ "read-pkg-up": "2.0.0" }, "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "ms": "2.0.0" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.3.8", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true } } }, "eslint-plugin-jsx-a11y": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.2.tgz", - "integrity": "sha1-ZZJ3p1iwNsMFp+ShMFfDAc075z8=", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz", + "integrity": "sha1-VFg9GuRCSDFi4EDhPMMYZUZRAOU=", "dev": true, "requires": { "aria-query": "0.7.0", @@ -3066,26 +2769,57 @@ "ast-types-flow": "0.0.7", "axobject-query": "0.1.0", "damerau-levenshtein": "1.0.4", - "emoji-regex": "6.4.2", - "jsx-ast-utils": "1.4.1" + "emoji-regex": "6.5.1", + "jsx-ast-utils": "2.0.1" } }, "eslint-plugin-react": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz", - "integrity": "sha1-J3cKzzn1/UnNCvQIPOWBBOs5DUw=", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz", + "integrity": "sha512-YGSjB9Qu6QbVTroUZi66pYky3DfoIPLdHQ/wmrBGyBRnwxQsBXAov9j2rpXt/55i8nyMv6IRWJv2s4d4YnduzQ==", "dev": true, "requires": { - "doctrine": "2.0.0", + "doctrine": "2.1.0", "has": "1.0.1", - "jsx-ast-utils": "1.4.1" + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + } } }, + "eslint-restricted-globals": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", + "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" + }, "esrecurse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "dev": true, "requires": { "estraverse": "4.2.0", "object-assign": "4.1.1" @@ -3094,8 +2828,7 @@ "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" }, "esutils": { "version": "2.0.2", @@ -3113,7 +2846,7 @@ "resolved": "https://registry.npmjs.org/eth-contract-class/-/eth-contract-class-0.0.6.tgz", "integrity": "sha1-OYuJUhScx0fLlZ+otdSAKIx6i84=", "requires": { - "web3-core-promievent": "1.0.0-beta.22" + "web3-core-promievent": "1.0.0-beta.27" } }, "eth-lib": { @@ -3122,22 +2855,15 @@ "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "elliptic": "6.4.0", "keccakjs": "0.2.1", "nano-json-stream-parser": "0.1.2", "servify": "0.1.12", - "ws": "3.3.2", + "ws": "3.3.3", "xhr-request-promise": "0.1.2" } }, - "ethereumjs-testrpc": { - "version": "git://github.com/perissology/testrpc.git#81216dbc38230b88b0f7ccf749720a47a253c1eb", - "dev": true, - "requires": { - "webpack": "3.6.0" - } - }, "ethjs-unit": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", @@ -3163,7 +2889,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.30" + "es5-ext": "0.10.37" } }, "eventemitter3": { @@ -3178,12 +2904,13 @@ "dev": true }, "evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "create-hash": "1.1.3" + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" } }, "execa": { @@ -3289,13 +3016,13 @@ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "external-editor": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", - "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", "dev": true, "requires": { - "iconv-lite": "0.4.18", - "jschardet": "1.5.1", + "chardet": "0.4.2", + "iconv-lite": "0.4.19", "tmp": "0.0.33" } }, @@ -3324,6 +3051,29 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "dev": true, + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } + } + }, "fd-slicer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", @@ -3398,13 +3148,11 @@ } }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "locate-path": "2.0.0" } }, "for-each": { @@ -3463,16 +3211,25 @@ "dev": true }, "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.1" + "jsonfile": "4.0.0", + "universalify": "0.1.1" + }, + "dependencies": { + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } } }, "fs-promise": { @@ -3496,6 +3253,15 @@ "graceful-fs": "4.1.11", "jsonfile": "2.4.0" } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } } } }, @@ -3511,23 +3277,25 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", "optional": true, "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.36" + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" }, "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "optional": true, "requires": { "co": "4.6.0", @@ -3536,16 +3304,19 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { "delegates": "1.0.0", @@ -3554,36 +3325,43 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -3591,21 +3369,24 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -3613,52 +3394,61 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { "version": "2.0.5", - "bundled": true, - "optional": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3666,14 +3456,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "optional": true, "requires": { "ms": "2.0.0" @@ -3681,21 +3473,31 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -3703,21 +3505,25 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "optional": true, "requires": { "asynckit": "0.4.0", @@ -3727,11 +3533,13 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -3741,7 +3549,8 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "optional": true, "requires": { "fstream": "1.0.11", @@ -3751,7 +3560,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "1.1.1", @@ -3766,7 +3576,8 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "optional": true, "requires": { "assert-plus": "1.0.0" @@ -3774,14 +3585,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -3793,16 +3606,19 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "optional": true, "requires": { "ajv": "4.11.8", @@ -3811,13 +3627,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, - "optional": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -3827,11 +3644,13 @@ }, "hoek": { "version": "2.16.3", - "bundled": true + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "optional": true, "requires": { "assert-plus": "0.2.0", @@ -3841,7 +3660,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -3849,37 +3669,44 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "optional": true, "requires": { "jsbn": "0.1.1" @@ -3887,17 +3714,20 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "optional": true, "requires": { "jsonify": "0.0.0" @@ -3905,17 +3735,20 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "optional": true, "requires": { "assert-plus": "1.0.0", @@ -3926,50 +3759,60 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "mime-db": { "version": "1.27.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "optional": true }, "node-pre-gyp": { - "version": "0.6.36", - "bundled": true, + "version": "0.6.39", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "optional": true, "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", "mkdirp": "0.5.1", "nopt": "4.0.1", "npmlog": "4.1.0", @@ -3983,7 +3826,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1.1.0", @@ -3992,7 +3836,8 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -4003,38 +3848,45 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "optional": true, "requires": { "os-homedir": "1.0.2", @@ -4043,30 +3895,36 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "optional": true, "requires": { "deep-extend": "0.4.2", @@ -4077,14 +3935,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -4097,7 +3957,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -4126,41 +3987,47 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, - "optional": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "optional": true, "requires": { "asn1": "0.2.3", @@ -4176,14 +4043,16 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "optional": true } } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4192,31 +4061,36 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -4225,7 +4099,8 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "optional": true, "requires": { "debug": "2.6.8", @@ -4240,7 +4115,8 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "optional": true, "requires": { "punycode": "1.4.1" @@ -4248,7 +4124,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -4256,26 +4133,31 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "optional": true, "requires": { "extsprintf": "1.0.2" @@ -4283,7 +4165,8 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { "string-width": "1.0.2" @@ -4291,7 +4174,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, @@ -4304,22 +4188,49 @@ "graceful-fs": "4.1.11", "inherits": "2.0.3", "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "rimraf": "2.6.2" } }, "function-bind": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "ganache-cli": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-7.0.0-beta.0.tgz", + "integrity": "sha512-+Rpqvf7eXhT5MFEdMJtYIBqy+SLHu5It2hqJn06AjBS8tw06DxXkwrhJsjBgAKv2oKJ2ddtyaWIuQi1OzAgjfg==", + "dev": true, + "requires": { + "source-map-support": "0.5.3", + "webpack": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } + } + } + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "aproba": "1.1.2", + "aproba": "1.2.0", "console-control-strings": "1.1.0", "has-unicode": "2.0.1", "object-assign": "4.1.1", @@ -4327,6 +4238,28 @@ "string-width": "1.0.2", "strip-ansi": "3.0.1", "wide-align": "1.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "generate-function": { @@ -4358,9 +4291,9 @@ "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", "dev": true, "requires": { - "hosted-git-info": "2.4.2", + "hosted-git-info": "2.5.0", "meow": "3.7.0", - "normalize-package-data": "2.3.8", + "normalize-package-data": "2.4.0", "parse-github-repo-url": "1.4.1", "through2": "2.0.3" } @@ -4398,9 +4331,9 @@ } }, "git-raw-commits": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", - "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.0.tgz", + "integrity": "sha1-C8hZbpDV/+c29/VUa9LRL3OrqsY=", "dev": true, "requires": { "dargs": "4.1.0", @@ -4421,13 +4354,13 @@ } }, "git-semver-tags": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.2.tgz", - "integrity": "sha512-fhINopzKBQ8m6YlQt7gPf6T6hFnTF84O7U+8kYJmfjjKk7gbmKGj+BLcKNWi+japPbBwCeXXnfKwThpJpR9ZnQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.3.tgz", + "integrity": "sha1-GItFOIK/nXojr9Mbq6U32rc4jV0=", "dev": true, "requires": { "meow": "3.7.0", - "semver": "5.1.1" + "semver": "5.4.1" } }, "gitconfiglocal": { @@ -4436,7 +4369,7 @@ "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", "dev": true, "requires": { - "ini": "1.3.4" + "ini": "1.3.5" } }, "giveth-common-contracts": { @@ -4444,34 +4377,23 @@ "resolved": "https://registry.npmjs.org/giveth-common-contracts/-/giveth-common-contracts-0.4.0.tgz", "integrity": "sha512-zFRXh6MQyroTr2NSKwtYOX2pY78+S/SJoqwTScqJqqhFIfVxgWtqj1pOn7lEcZ44GTNdbaCh5MS7/rZiX9pasg==", "requires": { - "babel-eslint": "8.0.2", + "babel-eslint": "8.2.1", "codecov": "2.3.1", "jsonfile": "3.0.1", "solium": "0.5.5" }, "dependencies": { "babel-eslint": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.0.2.tgz", - "integrity": "sha512-yyl5U088oE+419+BNLJDKVWkUokuPLQeQt9ZTy9uM9kAzbtQgyYL3JkG425B8jxXA7MwTxnDAtRLMKJNH36qjA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.1.tgz", + "integrity": "sha512-RzdVOyWKQRUnLXhwLk+eKb4oyW+BykZSkpYwFhM4tnfzAG5OWfvG0w/uyzMp5XKEU0jN82+JefHr39bG2+KhRQ==", "requires": { - "@babel/code-frame": "7.0.0-beta.32", - "@babel/traverse": "7.0.0-beta.32", - "@babel/types": "7.0.0-beta.32", - "babylon": "7.0.0-beta.32" - } - }, - "babylon": { - "version": "7.0.0-beta.32", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.32.tgz", - "integrity": "sha512-PvAmyP2IJEBVAuE5yVzrTSWCCN9VMa1eGns8w3w6FYD/ivHSUmS7n+F40Fmjn+0nCQSUFR96wP0CqQ4jxTnF4Q==" - }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "requires": { - "graceful-fs": "4.1.11" + "@babel/code-frame": "7.0.0-beta.36", + "@babel/traverse": "7.0.0-beta.36", + "@babel/types": "7.0.0-beta.36", + "babylon": "7.0.0-beta.36", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0" } } } @@ -4514,13 +4436,20 @@ "requires": { "min-document": "2.19.0", "process": "0.5.2" + }, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + } } }, "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz", + "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==" }, "globby": { "version": "6.1.0", @@ -4536,25 +4465,22 @@ } }, "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "decompress-response": "3.3.0", + "create-error-class": "3.0.2", "duplexer3": "0.1.4", "get-stream": "3.0.0", - "is-plain-obj": "1.1.0", + "is-redirect": "1.0.0", "is-retry-allowed": "1.1.0", "is-stream": "1.1.0", - "isurl": "1.0.0", "lowercase-keys": "1.0.0", - "p-cancelable": "0.3.0", - "p-timeout": "1.2.1", "safe-buffer": "5.1.1", "timed-out": "4.0.1", - "url-parse-lax": "1.0.0", - "url-to-options": "1.0.1" + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } }, "graceful-fs": { @@ -4569,15 +4495,14 @@ "dev": true }, "growl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", - "dev": true + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" }, "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { "async": "1.5.2", @@ -4615,9 +4540,33 @@ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { "chalk": "1.1.3", - "commander": "2.12.1", - "is-my-json-valid": "2.16.1", + "commander": "2.12.2", + "is-my-json-valid": "2.17.1", "pinkie-promise": "2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } } }, "has": { @@ -4626,7 +4575,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.0" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -4638,10 +4587,9 @@ } }, "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, "has-symbol-support-x": { "version": "1.4.1", @@ -4674,9 +4622,9 @@ } }, "hash.js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", - "integrity": "sha512-I2TYCUjYQMmqmRMCp6jKMC5bvdXxGIZ/heITRR/0F1u0OP920ImEj/cXt3WgcTKBnNYGn7enxUzdai3db829JA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { "inherits": "2.0.3", @@ -4705,7 +4653,7 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.1", + "hash.js": "1.1.3", "minimalistic-assert": "1.0.0", "minimalistic-crypto-utils": "1.0.1" } @@ -4726,9 +4674,9 @@ } }, "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "http-errors": { @@ -4760,15 +4708,15 @@ } }, "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, "iconv-lite": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, "ieee754": { @@ -4813,9 +4761,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "inquirer": { @@ -4825,10 +4773,10 @@ "dev": true, "requires": { "ansi-escapes": "3.0.0", - "chalk": "2.1.0", + "chalk": "2.3.0", "cli-cursor": "2.1.0", "cli-width": "2.2.0", - "external-editor": "2.0.5", + "external-editor": "2.1.0", "figures": "2.0.0", "lodash": "4.17.4", "mute-stream": "0.0.7", @@ -4846,48 +4794,6 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -4896,22 +4802,13 @@ "requires": { "ansi-regex": "3.0.0" } - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } } } }, "interpret": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", - "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", "dev": true }, "invariant": { @@ -4944,13 +4841,13 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "1.0.0", @@ -4968,12 +4865,12 @@ "dev": true }, "is-ci": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", - "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.1" + "ci-info": "1.1.2" } }, "is-date-object": { @@ -5015,12 +4912,9 @@ } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-function": { "version": "1.0.1", @@ -5043,9 +4937,9 @@ "dev": true }, "is-my-json-valid": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", - "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz", + "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==", "requires": { "generate-function": "2.0.0", "generate-object-property": "1.2.0", @@ -5106,6 +5000,12 @@ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -5176,6 +5076,16 @@ "isarray": "1.0.0" } }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -5198,9 +5108,9 @@ "dev": true }, "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsbn": { "version": "0.1.1", @@ -5208,12 +5118,6 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, - "jschardet": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", - "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", - "dev": true - }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", @@ -5237,15 +5141,6 @@ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -5264,20 +5159,13 @@ "dev": true }, "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "requires": { "graceful-fs": "4.1.11" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -5308,10 +5196,13 @@ } }, "jsx-ast-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", - "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "3.0.3" + } }, "keccakjs": { "version": "0.2.1", @@ -5328,7 +5219,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "1.1.6" } }, "klaw": { @@ -5355,85 +5246,80 @@ } }, "lerna": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-2.3.1.tgz", - "integrity": "sha512-uG+Av1bHEZil7m01fh8xNmP8q4nHksvZ0cN5VYa8HERGGwOqdinDNK9wz0NZBAixcifrtdXCc5vBz+WjpY+5gw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-2.6.0.tgz", + "integrity": "sha512-Eof3ye77ExLP4oGwFzfNDOQX1//ee31yaRyQpUwrZ0L0/NIsrSs6/9u7CEXNrMiOhISMdc0nLDDBF947AOteqA==", "dev": true, "requires": { "async": "1.5.2", - "chalk": "2.1.0", + "chalk": "2.3.0", "cmd-shim": "2.0.2", "columnify": "1.5.4", "command-join": "2.0.0", - "conventional-changelog-cli": "1.3.4", - "conventional-recommended-bump": "1.0.2", + "conventional-changelog-cli": "1.3.5", + "conventional-recommended-bump": "1.1.0", "dedent": "0.7.0", "execa": "0.8.0", "find-up": "2.1.0", - "fs-extra": "4.0.2", + "fs-extra": "4.0.3", "get-port": "3.2.0", "glob": "7.1.2", "glob-parent": "3.1.0", "globby": "6.1.0", "graceful-fs": "4.1.11", + "hosted-git-info": "2.5.0", "inquirer": "3.3.0", - "is-ci": "1.0.10", + "is-ci": "1.1.0", "load-json-file": "3.0.0", "lodash": "4.17.4", "minimatch": "3.0.4", "npmlog": "4.1.2", "p-finally": "1.0.0", + "package-json": "4.0.1", "path-exists": "3.0.0", "read-cmd-shim": "1.0.1", "read-pkg": "2.0.0", - "rimraf": "2.6.1", + "rimraf": "2.6.2", "safe-buffer": "5.1.1", "semver": "5.4.1", "signal-exit": "3.0.2", + "slash": "1.0.0", "strong-log-transformer": "1.0.6", - "temp-write": "3.3.0", + "temp-write": "3.4.0", "write-file-atomic": "2.3.0", - "write-json-file": "2.2.0", + "write-json-file": "2.3.0", "write-pkg": "3.1.0", "yargs": "8.0.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "execa": { @@ -5451,26 +5337,6 @@ "strip-eof": "1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -5481,12 +5347,6 @@ "path-dirname": "1.0.2" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -5494,10 +5354,13 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-glob": { "version": "3.1.0", @@ -5508,15 +5371,6 @@ "is-extglob": "2.1.1" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, "load-json-file": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-3.0.0.tgz", @@ -5529,46 +5383,6 @@ "strip-bom": "3.0.0" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - }, - "dependencies": { - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - } - } - }, "parse-json": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz", @@ -5578,111 +5392,6 @@ "error-ex": "1.3.1" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.3.8", - "path-type": "2.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", @@ -5716,16 +5425,15 @@ } }, "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "strip-bom": "3.0.0" } }, "loader-runner": { @@ -5752,13 +5460,6 @@ "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } } }, "lodash": { @@ -5882,7 +5583,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.1" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -5911,12 +5612,20 @@ } }, "make-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", - "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "map-obj": { @@ -5925,6 +5634,28 @@ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5945,8 +5676,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.2" + "errno": "0.1.6", + "readable-stream": "2.3.3" } }, "memorystream": { @@ -5966,11 +5697,92 @@ "loud-rejection": "1.6.0", "map-obj": "1.0.1", "minimist": "1.2.0", - "normalize-package-data": "2.3.8", + "normalize-package-data": "2.4.0", "object-assign": "4.1.1", "read-pkg-up": "1.0.1", "redent": "1.0.0", "trim-newlines": "1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } } }, "merge-descriptors": { @@ -6011,7 +5823,7 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "brorand": "1.1.0" } }, @@ -6075,10 +5887,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", @@ -6086,13 +5897,6 @@ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } } }, "mkdirp-promise": { @@ -6105,9 +5909,9 @@ } }, "mocha": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.0.tgz", - "integrity": "sha512-pIU2PJjrPYvYRqVpjXzj76qltO9uBYI7woYAMoxbSefsa+vqAfptjoeevd6bUgwD0mPIO+hv9f7ltvsNreL2PA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", + "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", "dev": true, "requires": { "browser-stdout": "1.3.0", @@ -6117,6 +5921,7 @@ "escape-string-regexp": "1.0.5", "glob": "7.1.1", "growl": "1.9.2", + "he": "1.1.1", "json3": "3.3.2", "lodash.create": "3.1.1", "mkdirp": "0.5.1", @@ -6132,6 +5937,15 @@ "graceful-readlink": "1.0.1" } }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "diff": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", @@ -6152,6 +5966,18 @@ "path-is-absolute": "1.0.1" } }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, "supports-color": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", @@ -6176,9 +6002,9 @@ "dev": true }, "moment": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", + "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==", "dev": true }, "mout": { @@ -6210,9 +6036,9 @@ } }, "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" }, "nano-json-stream-parser": { "version": "0.1.2", @@ -6226,49 +6052,45 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, "node-libs-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { "assert": "1.4.1", - "browserify-zlib": "0.1.4", + "browserify-zlib": "0.2.0", "buffer": "4.9.1", "console-browserify": "1.1.0", "constants-browserify": "1.0.0", - "crypto-browserify": "3.11.1", + "crypto-browserify": "3.12.0", "domain-browser": "1.1.7", "events": "1.1.1", - "https-browserify": "0.0.1", - "os-browserify": "0.2.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", "path-browserify": "0.0.0", "process": "0.11.10", "punycode": "1.4.1", "querystring-es3": "0.2.1", - "readable-stream": "2.3.2", + "readable-stream": "2.3.3", "stream-browserify": "2.0.1", "stream-http": "2.7.2", - "string_decoder": "0.10.31", + "string_decoder": "1.0.3", "timers-browserify": "2.0.4", "tty-browserify": "0.0.0", "url": "0.11.0", "util": "0.10.3", "vm-browserify": "0.0.4" - }, - "dependencies": { - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } } }, "node-uuid": { @@ -6277,14 +6099,14 @@ "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" }, "normalize-package-data": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.4.2", + "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", - "semver": "5.1.1", + "semver": "5.4.1", "validate-npm-package-license": "3.0.1" } }, @@ -6304,6 +6126,18 @@ "path-key": "2.0.1" } }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -6335,8 +6169,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { "version": "0.4.0", @@ -6344,6 +6177,12 @@ "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=", "dev": true }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -6394,22 +6233,14 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.10", + "minimist": "0.0.8", "wordwrap": "0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } } }, "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, "os-homedir": { @@ -6419,12 +6250,13 @@ "dev": true }, "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { - "lcid": "1.0.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "os-tmpdir": { @@ -6456,16 +6288,19 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "requires": { + "p-try": "1.0.0" + } }, "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.1.0" + "p-limit": "1.2.0" } }, "p-timeout": { @@ -6477,10 +6312,27 @@ "p-finally": "1.0.0" } }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.1", + "registry-url": "3.1.0", + "semver": "5.4.1" + } + }, "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", "dev": true }, "parse-asn1": { @@ -6489,11 +6341,11 @@ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "dev": true, "requires": { - "asn1.js": "4.9.1", - "browserify-aes": "1.0.6", + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", "create-hash": "1.1.3", - "evp_bytestokey": "1.0.0", - "pbkdf2": "3.0.12" + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" } }, "parse-github-repo-url": { @@ -6551,13 +6403,9 @@ "dev": true }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -6569,6 +6417,12 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -6576,14 +6430,12 @@ "dev": true }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "pify": "2.3.0" } }, "pathval": { @@ -6592,16 +6444,16 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, "pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "dev": true, "requires": { "create-hash": "1.1.3", "create-hmac": "1.1.6", "ripemd160": "2.0.1", "safe-buffer": "5.1.1", - "sha.js": "2.4.8" + "sha.js": "2.4.9" } }, "pegjs": { @@ -6647,6 +6499,27 @@ "dev": true, "requires": { "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } } }, "prepend-http": { @@ -6667,9 +6540,9 @@ "dev": true }, "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "process-nextick-args": { @@ -6677,6 +6550,26 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, "proxy-addr": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", @@ -6687,6 +6580,12 @@ "ipaddr.js": "1.5.2" } }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -6698,7 +6597,7 @@ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "browserify-rsa": "4.0.1", "create-hash": "1.1.3", "parse-asn1": "5.1.0", @@ -6711,9 +6610,9 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "q": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, "qs": { @@ -6770,7 +6669,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "1.1.6" } } } @@ -6780,7 +6679,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "1.1.6" } } } @@ -6794,6 +6693,16 @@ "safe-buffer": "5.1.1" } }, + "randomfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "dev": true, + "requires": { + "randombytes": "2.0.5", + "safe-buffer": "5.1.1" + } + }, "randomhex": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", @@ -6816,12 +6725,24 @@ "http-errors": "1.6.2", "iconv-lite": "0.4.19", "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.3.tgz", + "integrity": "sha1-UVdakA+N1oOBxxC0cSwhVMPiA1s=", + "dev": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } @@ -6836,30 +6757,30 @@ } }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.3.8", - "path-type": "1.1.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -6877,7 +6798,7 @@ "requires": { "graceful-fs": "4.1.11", "minimatch": "3.0.4", - "readable-stream": "2.3.2", + "readable-stream": "2.3.3", "set-immediate-shim": "1.0.1" } }, @@ -6898,9 +6819,9 @@ "dev": true }, "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regenerator-transform": { @@ -6909,8 +6830,8 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", "private": "0.1.8" } }, @@ -6933,6 +6854,25 @@ "regjsparser": "0.1.5" } }, + "registry-auth-token": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", + "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", + "dev": true, + "requires": { + "rc": "1.2.3", + "safe-buffer": "5.1.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "1.2.3" + } + }, "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", @@ -7024,10 +6964,13 @@ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } }, "restore-cursor": { "version": "2.0.0", @@ -7058,9 +7001,9 @@ } }, "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.1.2" @@ -7111,7 +7054,7 @@ "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", "dev": true, "requires": { - "nan": "2.6.2" + "nan": "2.8.0" } }, "scrypt.js": { @@ -7130,7 +7073,7 @@ "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", "dev": true, "requires": { - "pbkdf2": "3.0.12" + "pbkdf2": "3.0.14" } }, "seek-bzip": { @@ -7154,9 +7097,9 @@ } }, "semver": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz", - "integrity": "sha1-oykqNz5vPgeY2gsgZBuanFvEfhk=", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "send": { @@ -7219,7 +7162,7 @@ "cors": "2.8.4", "express": "4.16.2", "request": "2.83.0", - "xhr": "2.4.0" + "xhr": "2.4.1" }, "dependencies": { "assert-plus": { @@ -7286,7 +7229,7 @@ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "5.4.0", + "ajv": "5.5.2", "har-schema": "2.0.0" } }, @@ -7404,12 +7347,13 @@ "dev": true }, "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "sha3": { @@ -7418,7 +7362,7 @@ "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=", "dev": true, "requires": { - "nan": "2.6.2" + "nan": "2.8.0" } }, "shebang-command": { @@ -7454,6 +7398,14 @@ "once": "1.4.0", "unzip-response": "1.0.2", "xtend": "4.0.1" + }, + "dependencies": { + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", + "dev": true + } } }, "slash": { @@ -7481,9 +7433,9 @@ "integrity": "sha1-Q66MQZ/TrAVqBfip0fsQIs1B7MI=" }, "solc": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.18.tgz", - "integrity": "sha512-Kq+O3PNF9Pfq7fB+lDYAuoqRdghLmZyfngsg0h1Hj38NKAeVHeGPOGeZasn5KqdPeCzbMFvaGyTySxzGv6aXCg==", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.19.tgz", + "integrity": "sha512-hvi/vi9rQcB73poRLoLRfQIYKwmdhrNbZlOOFCGd5v58gEsYEUr3+oHPSXhyk4CFNchWC2ojpMYrHDJNm0h4jQ==", "dev": true, "requires": { "fs-extra": "0.30.0", @@ -7493,10 +7445,157 @@ "yargs": "4.8.1" }, "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", "dev": true }, "yargs": { @@ -7520,147 +7619,80 @@ "y18n": "3.2.1", "yargs-parser": "2.4.1" } + }, + "yargs-parser": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", + "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "lodash.assign": "4.2.0" + } } } }, "solcpiler": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/solcpiler/-/solcpiler-0.0.7.tgz", - "integrity": "sha512-RlgzQ5HtnLx/K0cccc4235yMNzzaw2g+8YkRKiYPRf82DxxUUHu8fzYizSp4m0GJujW8VTdIZ8V/GRtKVp32Rg==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/solcpiler/-/solcpiler-0.0.10.tgz", + "integrity": "sha512-mVg2Z2d+aMTEZCXdRuXGnPwoRZUgXqQ/GQiYwWNUTA7qbzUIwZmOcdKHEMRK7wsdONxMm45Z6IwX0c8rmirVAw==", "dev": true, "requires": { - "async": "2.5.0", + "app-root-path": "2.0.1", + "async": "2.6.0", "glob": "7.1.2", "lodash": "4.17.4", - "solc": "0.4.18", + "solc": "0.4.19", "web3": "0.19.1", "yargs": "8.0.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "locate-path": "2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "number-is-nan": "1.0.1" } }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.3.8", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, "web3": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/web3/-/web3-0.19.1.tgz", "integrity": "sha1-52PVsRB8S8JKvU+MvuG6Nlnm6zE=", "dev": true, "requires": { - "bignumber.js": "4.0.2", + "bignumber.js": "4.1.0", "crypto-js": "3.1.8", "utf8": "2.1.2", "xhr2": "0.1.4", "xmlhttprequest": "1.8.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", @@ -7700,21 +7732,21 @@ "requires": { "chokidar": "1.7.0", "colors": "1.1.2", - "commander": "2.12.1", + "commander": "2.12.2", "lodash": "4.17.4", "sol-digger": "0.0.2", "sol-explore": "1.6.2", - "solparse": "1.4.0" + "solparse": "1.4.2" } }, "solparse": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/solparse/-/solparse-1.4.0.tgz", - "integrity": "sha512-fEeAJzHBw0b/Md3OU4TZHyTDtQ2NkvvilMh7ApkWC+W9sN8VvCPzttOcA93gbgsm8Cq6j9Hw/tgzb86NabXyew==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/solparse/-/solparse-1.4.2.tgz", + "integrity": "sha512-TX7KhhJYpPDIjkS3kOfXn7u1yUD0AFk2mbrImsnPH2xPxLQ6fqppdIDjuJcU4Io1TuKbUg+Ar5n7tRB+5iJZww==", "requires": { - "mocha": "4.0.1", + "mocha": "4.1.0", "pegjs": "0.10.0", - "yargs": "10.0.3" + "yargs": "10.1.1" }, "dependencies": { "commander": { @@ -7722,28 +7754,10 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, "mocha": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.0.1.tgz", - "integrity": "sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", "requires": { "browser-stdout": "1.3.0", "commander": "2.11.0", @@ -7768,9 +7782,9 @@ } }, "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { "is-plain-obj": "1.1.0" @@ -7783,9 +7797,9 @@ "dev": true }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-support": { @@ -7794,7 +7808,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.6" + "source-map": "0.5.7" } }, "spdx-correct": { @@ -7871,7 +7885,7 @@ "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.2" + "readable-stream": "2.3.3" } }, "stream-http": { @@ -7882,7 +7896,7 @@ "requires": { "builtin-status-codes": "3.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.2", + "readable-stream": "2.3.3", "to-arraybuffer": "1.0.1", "xtend": "4.0.1" } @@ -7894,13 +7908,27 @@ "dev": true }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } } }, "string_decoder": { @@ -7925,13 +7953,10 @@ } }, "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-dirs": { "version": "2.1.0", @@ -7965,6 +7990,12 @@ "get-stdin": "4.0.1" } }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "strong-log-transformer": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz", @@ -7974,7 +8005,7 @@ "byline": "5.0.0", "duplexer": "0.1.1", "minimist": "0.1.0", - "moment": "2.18.1", + "moment": "2.20.1", "through": "2.3.8" }, "dependencies": { @@ -7987,9 +8018,12 @@ } }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } }, "swarm-js": { "version": "0.1.37", @@ -8037,6 +8071,37 @@ "graceful-fs": "4.1.11", "jsonfile": "2.4.0" } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } } } }, @@ -8107,8 +8172,8 @@ "dev": true, "requires": { "bl": "1.2.1", - "end-of-stream": "1.4.0", - "readable-stream": "2.3.2", + "end-of-stream": "1.4.1", + "readable-stream": "2.3.3", "xtend": "4.0.1" } }, @@ -8119,7 +8184,7 @@ "dev": true, "requires": { "bluebird": "2.11.0", - "commander": "2.12.1", + "commander": "2.12.2", "fstream": "1.0.11", "mout": "0.11.1", "tar": "2.2.1" @@ -8140,19 +8205,25 @@ "dev": true }, "temp-write": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-3.3.0.tgz", - "integrity": "sha1-walt4rNgYTQuroH0T/ABrsj2Fak=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-3.4.0.tgz", + "integrity": "sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI=", "dev": true, "requires": { "graceful-fs": "4.1.11", "is-stream": "1.1.0", - "make-dir": "1.0.0", - "pify": "2.3.0", + "make-dir": "1.1.0", + "pify": "3.0.0", "temp-dir": "1.0.0", "uuid": "3.1.0" }, "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", @@ -8207,7 +8278,7 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.2", + "readable-stream": "2.3.3", "xtend": "4.0.1" } }, @@ -8242,10 +8313,9 @@ "dev": true }, "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "tough-cookie": { "version": "2.3.3", @@ -8296,6 +8366,11 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "type-detect": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz", + "integrity": "sha512-N9IvkQslUGYGC24RkJk1ba99foK6TkwC2FHAEBlQFBP0RxQZS8ZpJuAZcwiY/w9ZJHFQb1aOXBI60OdxhTrwEQ==" + }, "type-is": { "version": "1.6.15", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", @@ -8321,13 +8396,19 @@ "is-typedarray": "1.0.0" } }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", + "dev": true + }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "requires": { - "source-map": "0.5.6", + "source-map": "0.5.7", "uglify-to-browserify": "1.0.2", "yargs": "3.10.0" }, @@ -8349,12 +8430,6 @@ "wordwrap": "0.0.2" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", @@ -8382,9 +8457,9 @@ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", "dev": true, "requires": { - "source-map": "0.5.6", + "source-map": "0.5.7", "uglify-js": "2.8.29", - "webpack-sources": "1.0.1" + "webpack-sources": "1.1.0" } }, "ultron": { @@ -8441,9 +8516,9 @@ "dev": true }, "unzip-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, "url": { @@ -8593,7 +8668,7 @@ "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", "dev": true, "requires": { - "async": "2.5.0", + "async": "2.6.0", "chokidar": "1.7.0", "graceful-fs": "4.1.11" } @@ -8613,137 +8688,149 @@ "integrity": "sha1-C2U9alD0B7N/WTNx+27hvTofJ8I=", "dev": true, "requires": { - "web3-bzz": "1.0.0-beta.26", - "web3-core": "1.0.0-beta.26", - "web3-eth": "1.0.0-beta.26", - "web3-eth-personal": "1.0.0-beta.26", - "web3-net": "1.0.0-beta.26", - "web3-shh": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" + "web3-bzz": "1.0.0-beta.27", + "web3-core": "1.0.0-beta.27", + "web3-eth": "1.0.0-beta.27", + "web3-eth-personal": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27", + "web3-shh": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-bzz": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.26.tgz", - "integrity": "sha1-WFihjN5XaHSAGoPR30IJX8lYWQw=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.27.tgz", + "integrity": "sha1-Tmggpc/nOqsG2CV59FBFD76YIqM=", "dev": true, "requires": { "got": "7.1.0", "swarm-js": "0.1.37", "underscore": "1.8.3" - } - }, - "web3-core": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.26.tgz", - "integrity": "sha1-hczKK2KfmK3+sOK21+K31nepeVk=", - "dev": true, - "requires": { - "web3-core-helpers": "1.0.0-beta.26", - "web3-core-method": "1.0.0-beta.26", - "web3-core-requestmanager": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" - } - }, - "web3-core-helpers": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.26.tgz", - "integrity": "sha1-2G31xrMQ/FjFtv9Woz0mePu8PcM=", - "dev": true, - "requires": { - "underscore": "1.8.3", - "web3-eth-iban": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" - } - }, - "web3-core-method": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.26.tgz", - "integrity": "sha1-SdhpoacvMiNXbIkmCe7kDTsiVXw=", - "dev": true, - "requires": { - "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.26", - "web3-core-promievent": "1.0.0-beta.26", - "web3-core-subscriptions": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" }, "dependencies": { - "web3-core-promievent": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.26.tgz", - "integrity": "sha1-BkJSUZ35t+banCD1lKAuz+nDU8E=", + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", "dev": true, "requires": { - "bluebird": "3.3.1", - "eventemitter3": "1.1.1" + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" } } } }, + "web3-core": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.27.tgz", + "integrity": "sha1-TQCb9x5Yt5F2E0EpF+/5ERO0N8M=", + "dev": true, + "requires": { + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-requestmanager": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.27.tgz", + "integrity": "sha1-6wlPrTfJ3B1wZt11Zimi1u+6B6I=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, + "web3-core-method": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.27.tgz", + "integrity": "sha1-3hTlQL1qdTfXBGcLSeY/BSYgG6o=", + "dev": true, + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-promievent": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" + } + }, "web3-core-promievent": { - "version": "1.0.0-beta.22", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.22.tgz", - "integrity": "sha1-qGLxW+o4c0qcOH9jwi568eC4cYg=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.27.tgz", + "integrity": "sha1-0lx9e75NU9+/3KBJ+e1LCmlUvrw=", "requires": { "bluebird": "3.3.1", "eventemitter3": "1.1.1" } }, "web3-core-requestmanager": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.26.tgz", - "integrity": "sha1-dffvfy/GpLDTRr8AVCFXuB4UsDM=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.27.tgz", + "integrity": "sha1-Vk7uJEoxCq5abGgyzeLA49wwHpg=", "dev": true, "requires": { "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.26", - "web3-providers-http": "1.0.0-beta.26", - "web3-providers-ipc": "1.0.0-beta.26", - "web3-providers-ws": "1.0.0-beta.26" + "web3-core-helpers": "1.0.0-beta.27", + "web3-providers-http": "1.0.0-beta.27", + "web3-providers-ipc": "1.0.0-beta.27", + "web3-providers-ws": "1.0.0-beta.27" } }, "web3-core-subscriptions": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.26.tgz", - "integrity": "sha1-0W0dbr3GDXCL9aR7hxZt1+jBl6A=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.27.tgz", + "integrity": "sha1-VvKRy1Sn7PgNRzTXL1Sky8uJdzc=", "dev": true, "requires": { "eventemitter3": "1.1.1", "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.26" + "web3-core-helpers": "1.0.0-beta.27" } }, "web3-eth": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.26.tgz", - "integrity": "sha1-aMAkw1a4ZWrDaVyPk9e2GzgQRKU=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.27.tgz", + "integrity": "sha1-hV3Q4BqU1Xhx/9j0n22eyqMXIas=", "dev": true, "requires": { "underscore": "1.8.3", - "web3-core": "1.0.0-beta.26", - "web3-core-helpers": "1.0.0-beta.26", - "web3-core-method": "1.0.0-beta.26", - "web3-core-subscriptions": "1.0.0-beta.26", - "web3-eth-abi": "1.0.0-beta.26", - "web3-eth-accounts": "1.0.0-beta.26", - "web3-eth-contract": "1.0.0-beta.26", - "web3-eth-iban": "1.0.0-beta.26", - "web3-eth-personal": "1.0.0-beta.26", - "web3-net": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-eth-abi": "1.0.0-beta.27", + "web3-eth-accounts": "1.0.0-beta.27", + "web3-eth-contract": "1.0.0-beta.27", + "web3-eth-iban": "1.0.0-beta.27", + "web3-eth-personal": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-eth-abi": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.26.tgz", - "integrity": "sha1-Ku3ASDxna1kcccBBJXIZj3omb+I=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.27.tgz", + "integrity": "sha1-RS6dk3YVYL4yNE7juJddD7JLvb4=", "dev": true, "requires": { "bn.js": "4.11.6", "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" + "web3-core-helpers": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" }, "dependencies": { "bn.js": { @@ -8755,20 +8842,21 @@ } }, "web3-eth-accounts": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.26.tgz", - "integrity": "sha1-N/18d3BCBGX95ZGCKYkad3OAehM=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.27.tgz", + "integrity": "sha1-mUDCjl48kg1nz2iH6pxS8c3Re3k=", "dev": true, "requires": { "bluebird": "3.3.1", + "crypto-browserify": "3.12.0", "eth-lib": "0.2.5", "scrypt.js": "0.2.0", "underscore": "1.8.3", "uuid": "2.0.1", - "web3-core": "1.0.0-beta.26", - "web3-core-helpers": "1.0.0-beta.26", - "web3-core-method": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" }, "dependencies": { "eth-lib": { @@ -8777,7 +8865,7 @@ "integrity": "sha512-pXs4ryU+7S8MPpkQpNqG4JlXEec87kbXowQbYzRVV+c5XUccrO6WOxVPDicxql1AXSBzfmBSFVkvvG+H4htuxg==", "dev": true, "requires": { - "bn.js": "4.11.7", + "bn.js": "4.11.8", "elliptic": "6.4.0", "xhr-request-promise": "0.1.2" } @@ -8791,115 +8879,103 @@ } }, "web3-eth-contract": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.26.tgz", - "integrity": "sha1-fny3FXqrYMUi20353p3L2G2BOwk=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.27.tgz", + "integrity": "sha1-AS96XVnaZ+KWxzWo8pcK7N0gfn0=", "dev": true, "requires": { "underscore": "1.8.3", - "web3-core": "1.0.0-beta.26", - "web3-core-helpers": "1.0.0-beta.26", - "web3-core-method": "1.0.0-beta.26", - "web3-core-promievent": "1.0.0-beta.26", - "web3-core-subscriptions": "1.0.0-beta.26", - "web3-eth-abi": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" - }, - "dependencies": { - "web3-core-promievent": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.26.tgz", - "integrity": "sha1-BkJSUZ35t+banCD1lKAuz+nDU8E=", - "dev": true, - "requires": { - "bluebird": "3.3.1", - "eventemitter3": "1.1.1" - } - } + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-promievent": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-eth-abi": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-eth-iban": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.26.tgz", - "integrity": "sha1-6MI2GOpapmJ73pHHPqi18ZGe43Q=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.27.tgz", + "integrity": "sha1-RDPCj0F8Oa+WMzoGpK+h/NSqaEI=", "dev": true, "requires": { - "bn.js": "4.11.7", - "web3-utils": "1.0.0-beta.26" + "bn.js": "4.11.8", + "web3-utils": "1.0.0-beta.27" } }, "web3-eth-personal": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.26.tgz", - "integrity": "sha1-K4gDs01HJEfPW76BziVQSxMb7QY=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.27.tgz", + "integrity": "sha1-ukiaNIdkpKswOItcwcblm9bq7Ks=", "dev": true, "requires": { - "web3-core": "1.0.0-beta.26", - "web3-core-helpers": "1.0.0-beta.26", - "web3-core-method": "1.0.0-beta.26", - "web3-net": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" + "web3-core": "1.0.0-beta.27", + "web3-core-helpers": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-net": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.26.tgz", - "integrity": "sha1-UY0oO1AANf7kgL9ocIljRyWrZLM=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.27.tgz", + "integrity": "sha1-eulTbsOf7Rou6zjALm48jt/oq30=", "dev": true, "requires": { - "web3-core": "1.0.0-beta.26", - "web3-core-method": "1.0.0-beta.26", - "web3-utils": "1.0.0-beta.26" + "web3-core": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-utils": "1.0.0-beta.27" } }, "web3-providers-http": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.26.tgz", - "integrity": "sha1-GwFUu3UY027TT5EKZl5FFSoKyKE=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.27.tgz", + "integrity": "sha1-LwrhYJvF5KNb4lgYzX/HfeBitqY=", "dev": true, "requires": { - "web3-core-helpers": "1.0.0-beta.26", + "web3-core-helpers": "1.0.0-beta.27", "xhr2": "0.1.4" } }, "web3-providers-ipc": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.26.tgz", - "integrity": "sha1-HffepV5nE1yQRaJsUzso0bbJ2mQ=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.27.tgz", + "integrity": "sha1-oFwkIe/+TEfxX0efeSUTWtCUJ2I=", "dev": true, "requires": { "oboe": "2.1.3", "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.26" + "web3-core-helpers": "1.0.0-beta.27" } }, "web3-providers-ws": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.26.tgz", - "integrity": "sha1-z0ylFUpPsVok1GgtEJUO4Emku2E=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.27.tgz", + "integrity": "sha1-bUZ4Geoi3foba6FJjTHZVU4rBt0=", "dev": true, "requires": { "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.26", + "web3-core-helpers": "1.0.0-beta.27", "websocket": "git://github.com/frozeman/WebSocket-Node.git#7004c39c42ac98875ab61126e5b4a925430f592c" } }, "web3-shh": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.26.tgz", - "integrity": "sha1-YMrff1V71rRRVHXd4z4uV7gKgg4=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.27.tgz", + "integrity": "sha1-b3bW6yoma769zwqjDFo62J82e38=", "dev": true, "requires": { - "web3-core": "1.0.0-beta.26", - "web3-core-method": "1.0.0-beta.26", - "web3-core-subscriptions": "1.0.0-beta.26", - "web3-net": "1.0.0-beta.26" + "web3-core": "1.0.0-beta.27", + "web3-core-method": "1.0.0-beta.27", + "web3-core-subscriptions": "1.0.0-beta.27", + "web3-net": "1.0.0-beta.27" } }, "web3-utils": { - "version": "1.0.0-beta.26", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.26.tgz", - "integrity": "sha1-8ErYwUSxeBxrIMKBjgUyy55tyhU=", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.27.tgz", + "integrity": "sha1-0JfVwzaha59sqbYK9o3RXAZDIUs=", "dev": true, "requires": { "bn.js": "4.11.6", @@ -8926,173 +9002,68 @@ } }, "webpack": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.6.0.tgz", - "integrity": "sha512-OsHT3D0W0KmPPh60tC7asNnOmST6bKTiR90UyEdT9QYoaJ4OYN4Gg7WK1k3VxHK07ZoiYWPsKvlS/gAjwL/vRA==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", + "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", "dev": true, "requires": { - "acorn": "5.1.2", + "acorn": "5.3.0", "acorn-dynamic-import": "2.0.2", - "ajv": "5.2.3", - "ajv-keywords": "2.1.0", - "async": "2.5.0", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "async": "2.6.0", "enhanced-resolve": "3.4.1", "escope": "3.6.0", - "interpret": "1.0.4", + "interpret": "1.1.0", "json-loader": "0.5.7", "json5": "0.5.1", "loader-runner": "2.3.0", "loader-utils": "1.1.0", "memory-fs": "0.4.1", "mkdirp": "0.5.1", - "node-libs-browser": "2.0.0", - "source-map": "0.5.6", - "supports-color": "4.4.0", + "node-libs-browser": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.5.0", "tapable": "0.2.8", "uglifyjs-webpack-plugin": "0.4.6", "watchpack": "1.4.0", - "webpack-sources": "1.0.1", + "webpack-sources": "1.1.0", "yargs": "8.0.2" }, "dependencies": { - "ajv": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", - "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "number-is-nan": "1.0.1" } }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.3.8", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", @@ -9126,38 +9097,62 @@ } }, "webpack-sources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", - "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", "dev": true, "requires": { "source-list-map": "2.0.0", - "source-map": "0.5.6" + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "websocket": { "version": "git://github.com/frozeman/WebSocket-Node.git#7004c39c42ac98875ab61126e5b4a925430f592c", "dev": true, "requires": { - "debug": "2.6.8", - "nan": "2.6.2", + "debug": "2.6.9", + "nan": "2.8.0", "typedarray-to-buffer": "3.1.2", "yaeti": "0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=", + "dev": true + }, "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "2.0.0" } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wide-align": { "version": "1.1.2", @@ -9166,12 +9161,34 @@ "dev": true, "requires": { "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true }, "wordwrap": { @@ -9187,6 +9204,26 @@ "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "wrappy": { @@ -9206,16 +9243,16 @@ } }, "write-json-file": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.2.0.tgz", - "integrity": "sha1-UYYlBruzthnu+reFnx/WxtBTCHY=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", + "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { "detect-indent": "5.0.0", "graceful-fs": "4.1.11", - "make-dir": "1.0.0", - "pify": "2.3.0", - "sort-keys": "1.1.2", + "make-dir": "1.1.0", + "pify": "3.0.0", + "sort-keys": "2.0.0", "write-file-atomic": "2.3.0" }, "dependencies": { @@ -9224,6 +9261,12 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true } } }, @@ -9234,24 +9277,13 @@ "dev": true, "requires": { "sort-keys": "2.0.0", - "write-json-file": "2.2.0" - }, - "dependencies": { - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - } + "write-json-file": "2.3.0" } }, "ws": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", - "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { "async-limiter": "1.0.0", @@ -9260,9 +9292,9 @@ } }, "xhr": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", - "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.1.tgz", + "integrity": "sha512-pAIU5vBr9Hiy5cpFIbPnwf0C18ZF86DBsZKrlsf87N5De/JbA6RJ83UP/cv+aljl4S40iRVMqP4pr4sF9Dnj0A==", "dev": true, "requires": { "global": "4.3.2", @@ -9283,7 +9315,7 @@ "simple-get": "1.4.3", "timed-out": "2.0.0", "url-set-query": "1.0.0", - "xhr": "2.4.0" + "xhr": "2.4.1" }, "dependencies": { "object-assign": { @@ -9343,11 +9375,11 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", - "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.1.tgz", + "integrity": "sha512-7uRL1HZdCbc1QTP+X8mehOPuCYKC/XTaqAPj7gABLfTt6pgLyVRn3QVte4qhtilZouWCvqd1kipgMKl5tKsFiw==", "requires": { - "cliui": "3.2.0", + "cliui": "4.0.0", "decamelize": "1.2.0", "find-up": "2.1.0", "get-caller-file": "1.0.2", @@ -9358,82 +9390,15 @@ "string-width": "2.1.1", "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "8.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "yargs-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", - "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", - "requires": { - "camelcase": "4.1.0" - } - } + "yargs-parser": "8.1.0" } }, "yargs-parser": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", - "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", - "dev": true, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { - "camelcase": "3.0.0", - "lodash.assign": "4.2.0" + "camelcase": "4.1.0" } }, "yauzl": { diff --git a/package.json b/package.json index 4638da6..6fa651c 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "eslint-plugin-import": "^2.6.0", "eslint-plugin-jsx-a11y": "^6.0.2", "eslint-plugin-react": "^7.1.0", - "ethereumjs-testrpc": "git://github.com/perissology/testrpc.git#81216dbc", + "ganache-cli": "^7.0.0-beta.0", "lerna": "^2.2.0", "random-bytes": "^1.0.0", "mocha": "^3.5.0", diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index d2e391b..f814729 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -1,6 +1,6 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require('ethereumjs-testrpc'); +const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); @@ -75,21 +75,21 @@ describe('LiquidPledging plugins test', function () { }); it('Should fail to create giver with invalid plugin', async function() { - await assertFail(async () => { - await liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1 }); - }); + await assertFail( + liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1, gas: 4000000 }) + ); }); it('Should fail to create delegate with invalid plugin', async function() { - await assertFail(async () => { - await liquidPledging.addDelegate('delegate1', '', 0, liquidPledging.$address, { from: adminDelegate1}); - }); + await assertFail( + liquidPledging.addDelegate('delegate1', '', 0, liquidPledging.$address, { from: adminDelegate1, gas: 4000000}) + ); }); it('Should fail to create project with invalid plugin', async function() { - await assertFail(async () => { - await liquidPledging.addProject('Project1', '', giver1, 0, 0, vault.$address, { from: adminProject1}); - }); + await assertFail( + liquidPledging.addProject('Project1', '', giver1, 0, 0, vault.$address, { from: adminProject1, gas: 4000000}) + ); }); it('Should deploy TestSimpleProjectPlugin and add project', async function() { @@ -114,9 +114,9 @@ describe('LiquidPledging plugins test', function () { }); it('Should allow all plugins', async function() { - await liquidPledging.useWhitelist(false, { gas: 100000 }); + await liquidPledging.useWhitelist(false); - await liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1, gas: 200000 }); + await liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 3); diff --git a/test/CancelPledge.js b/test/CancelPledge.js index a39a018..8dcd44c 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -1,6 +1,6 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require('ethereumjs-testrpc'); +const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); @@ -73,9 +73,9 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should only allow pledge owner to cancel pledge', async () => { - await assertFail(async () => { - await liquidPledging.cancelPledge(2, 1000, { from: giver1 }); - }); + await assertFail( + liquidPledging.cancelPledge(2, 1000, { from: giver1, gas: 4000000 }) + ); }); it('Should cancel pledge and return to oldPledge', async () => { @@ -88,9 +88,9 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should not allow to cancel pledge if oldPledge === 0', async () => { - await assertFail(async () => { - await liquidPledging.cancelPledge(1, 1000, { from: giver1 }); - }); + await assertFail( + liquidPledging.cancelPledge(1, 1000, { from: giver1, gas: 4000000 }) + ); }) }); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index f9c156e..9f9322c 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -1,6 +1,6 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require('ethereumjs-testrpc'); +const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); @@ -38,8 +38,7 @@ describe('DelegationChain test', function () { before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 6700000, - total_accounts: 10, + gasLimit: 6700000, total_accounts: 10, }); testrpc.listen(8545, '127.0.0.1'); @@ -98,11 +97,11 @@ describe('DelegationChain test', function () { it('Should allow any delegate in chain to transfer pledge and undelegate all delegates occurring later in chain', async () => { // add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); // add delegate3 to chain - await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2, $extraGas: 100000}); + await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2}); // delegate 1 transfer pledge to project1. should also undelegate all delegates occurring later in chain - await liquidPledging.transfer(2, 4, 1000, 5, {from: delegate1, $extraGas: 200000}); + await liquidPledging.transfer(2, 4, 1000, 5, {from: delegate1}); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[5].amount, 1000); @@ -114,15 +113,15 @@ describe('DelegationChain test', function () { }); it('Should throw if delegate2 is not in delegationChain', async () => { - await assertFail(async () => await liquidPledging.transfer(3, 5, 1000, 1, {from: delegate2})); + await assertFail(liquidPledging.transfer(3, 5, 1000, 1, {from: delegate2, gas: 4000000})); }); it('Delegate1 should not be able to transfer to another giver', async () => { - await assertFail(async () => await liquidPledging.transfer(2, 5, 1000, 6, {from: delegate1})); + await assertFail(liquidPledging.transfer(2, 5, 1000, 6, {from: delegate1, gas: 4000000})); }); it('Delegate1 should be able to transfer pledge back to owner', async () => { - await liquidPledging.transfer(2, 5, 1000, 1, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 5, 1000, 1, {from: delegate1}); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[1].amount, 1000); assert.equal(st.pledges[1].delegates.length, 0); @@ -131,11 +130,11 @@ describe('DelegationChain test', function () { it('Delegate1 should be able to change delegation', async () => { // add delegate1 to chain - await liquidPledging.transfer(1, 1, 1000, 2, {from: giver1, $extraGas: 100000}); + await liquidPledging.transfer(1, 1, 1000, 2, {from: giver1}); // delegate1 add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); // delegate1 remove delegate2 and add delegate3 to chain - await liquidPledging.transfer(2, 3, 1000, 4, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 3, 1000, 4, {from: delegate1}); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[1].amount, 0); @@ -147,9 +146,9 @@ describe('DelegationChain test', function () { it('delegate in chain should be able to delegate to previous delegate, thus undelegating themselves and any delegate after the previous delegate', async () => { // add delegate2 to chain - await liquidPledging.transfer(4, 6, 1000, 3, {from: delegate3, $extraGas: 100000}); + await liquidPledging.transfer(4, 6, 1000, 3, {from: delegate3}); // delegate2 transfer back to delegate1, thus undelegating delegate2 & delegate3 - await liquidPledging.transfer(3, 7, 1000, 2, {from: delegate2, $extraGas: 100000}); + await liquidPledging.transfer(3, 7, 1000, 2, {from: delegate2}); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[7].amount, 0); @@ -176,14 +175,14 @@ describe('DelegationChain test', function () { it('Pledge should have longest commitTime in delegation chain', async () => { // delegate1 add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); // set the time const now = Math.floor(new Date().getTime() / 1000); await liquidPledging.setMockedTime(now); // propose project delegation - await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 100000 }); + await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2 }); const pledge = await liquidPledging.getPledge(8); assert.equal(pledge.commitTime, now + 259200); // 259200 is longest commitTime in delegationChain @@ -191,7 +190,7 @@ describe('DelegationChain test', function () { it('delegation chain should remain the same when owner veto\'s delegation', async () => { // owner veto delegation to project1 - await liquidPledging.transfer(1, 8, 1000, 3, { from: giver1, $extraGas: 100000 }); + await liquidPledging.transfer(1, 8, 1000, 3, { from: giver1 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[ 8 ].amount, 0); @@ -203,9 +202,9 @@ describe('DelegationChain test', function () { it('delegation chain should remain the same upto delegate of reciever when owner veto\'s delegation', async () => { // propose project1 delegation - await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 100000 }); + await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2 }); // owner veto delegation to project1 and remove delegate2 - await liquidPledging.transfer(1, 8, 1000, 2, { from: giver1, $extraGas: 100000 }); + await liquidPledging.transfer(1, 8, 1000, 2, { from: giver1 }); const pledge = await liquidPledging.getPledge(2); assert.equal(pledge.amount, 1000); @@ -213,9 +212,9 @@ describe('DelegationChain test', function () { it('owner should be able to transfer pledge to a new delegate at any time', async () => { // propose project1 delegation - await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1, $extraGas: 100000 }); + await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1 }); // owner veto delegation to project1 and assign new delgate - await liquidPledging.transfer(1, 9, 1000, 3, { from: giver1, $extraGas: 100000 }); + await liquidPledging.transfer(1, 9, 1000, 3, { from: giver1 }); const pledge = await liquidPledging.getPledge(10); assert.equal(pledge.amount, 1000); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 49673c6..4da88a1 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -1,6 +1,6 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require('ethereumjs-testrpc'); +const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); @@ -224,10 +224,10 @@ describe('LiquidPledging test', function () { const p = await liquidPledging.getPledge(5); assert.equal(utils.fromWei(p.amount), 0.05); - await assertFail(async () => { - await liquidPledging.withdraw(5, utils.toWei('0.01'), { from: adminProject1 }); + await assertFail( + liquidPledging.withdraw(5, utils.toWei('0.01'), { from: adminProject1, gas: 4000000 }) + ); }); - }); it('Delegate should send part of this ETH to project2', async () => { await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, {from: delegate1}); const st = await liquidPledgingState.getState(liquidPledging); @@ -279,9 +279,9 @@ describe('LiquidPledging test', function () { await liquidPledging.cancelProject(4, { from: adminProject2 }); }); it('Should not be able to withdraw it', async () => { - await assertFail(async () => { - await liquidPledging.withdraw(12, utils.toWei('0.005'), { from: giver1 }); - }); + await assertFail( + liquidPledging.withdraw(12, utils.toWei('0.005'), { from: giver1, gas: 4000000 }) + ); }); it('Should be able to cancel payment', async () => { // bug somewhere which will throw invalid op_code if we don't provide gas or extraGas @@ -306,7 +306,7 @@ describe('LiquidPledging test', function () { return '0x' + utils.padLeft(utils.toHex(p.amount).substring(2), 48) + utils.padLeft(utils.toHex(p.id).substring(2), 16); }); - await liquidPledging.mWithdraw(encodedPledges, { from: giver1, $extraGas: 500000 }); + await liquidPledging.mWithdraw(encodedPledges, { from: giver1 }); const initialBalance = await web3.eth.getBalance(giver1); await vault.multiConfirm([2, 3, 4, 5, 6]); @@ -362,8 +362,8 @@ describe('LiquidPledging test', function () { await liquidPledging.addProject('ProjectLevel19', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); await liquidPledging.addProject('ProjectLevel20', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - assertFail(async () => { - await liquidPledging.addProject('ProjectLevel21', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - }); + assertFail( + liquidPledging.addProject('ProjectLevel21', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1, gas: 4000000 }) + ); }) }); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 1d5b22d..afe59c2 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -1,6 +1,6 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require('ethereumjs-testrpc'); +const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); @@ -10,7 +10,6 @@ const PledgeAdmins = require('../js/pledgeAdmins'); const LiquidPledging = liquidpledging.LiquidPledgingMock; const LiquidPledgingState = liquidpledging.LiquidPledgingState; const LPVault = liquidpledging.LPVault; -const assertFail = require('./helpers/assertFail'); const assert = chai.assert; const printState = async (liquidPledgingState) => { @@ -84,25 +83,25 @@ describe('NormalizePledge test', function () { it('Should commit pledges if commitTime has passed', async () => { // commitTime 259200 - await liquidPledging.donate(1, 2, {from: giver1, value: 1000, $extraGas: 50000}); + await liquidPledging.donate(1, 2, {from: giver1, value: 1000}); // commitTime 86400 - await liquidPledging.donate(1, 3, {from: giver1, value: 1000, $extraGas: 50000}); + await liquidPledging.donate(1, 3, {from: giver1, value: 1000}); // commitTime 0 - await liquidPledging.donate(6, 3, {from: giver2, value: 1000, $extraGas: 50000}); + await liquidPledging.donate(6, 3, {from: giver2, value: 1000}); // set the time const now = Math.floor(new Date().getTime() / 1000); await liquidPledging.setMockedTime(now); // delegate to project - await liquidPledging.transfer(2, 2, 1000, 4, {from: delegate1, $extraGas: 100000}); - await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2, $extraGas: 100000}); - await liquidPledging.transfer(3, 5, 1000, 4, {from: delegate2, $extraGas: 100000}); + await liquidPledging.transfer(2, 2, 1000, 4, {from: delegate1}); + await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2}); + await liquidPledging.transfer(3, 5, 1000, 4, {from: delegate2}); // advance the time await liquidPledging.setMockedTime( now + 100000 ); - await liquidPledging.mNormalizePledge([6, 7, 8], {$extraGas: 100000}); + await liquidPledging.mNormalizePledge([6, 7, 8]); const st = await liquidPledgingState.getState(); assert.equal(st.pledges.length, 11); @@ -116,13 +115,13 @@ describe('NormalizePledge test', function () { }); it('Should transfer pledge to oldestPledgeNotCanceled', async () => { - await liquidPledging.transfer(4, 10, 1000, 5, {from: adminProject1, $extraGas: 100000}); + await liquidPledging.transfer(4, 10, 1000, 5, {from: adminProject1}); // cancel projects await liquidPledging.cancelProject(4, {from: adminProject1}); await liquidPledging.cancelProject(5, {from: adminProject2}); - await liquidPledging.mNormalizePledge([9, 11], {$extraGas: 100000}); + await liquidPledging.mNormalizePledge([9, 11]); const st = await liquidPledgingState.getState(); assert.equal(st.pledges.length, 12); diff --git a/test/Vault.js b/test/Vault.js index 9eff9bc..dd7e210 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -1,6 +1,6 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require('ethereumjs-testrpc'); +const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); @@ -52,13 +52,13 @@ describe('Vault test', function () { }); it('Should deploy Vault contract', async function () { - vault = await LPVault.new(web3, accounts[0], accounts[1]); + vault = await LPVault.new(web3, escapeHatchCaller, escapeHatchDestination, {from: vaultOwner}); const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + await vault.setLiquidPledging(liquidPledging.$address, {from: vaultOwner}); liquidPledgingState = new LiquidPledgingState(liquidPledging); @@ -78,14 +78,10 @@ describe('Vault test', function () { it('escapeFunds should fail', async function () { // only vaultOwner can escapeFunds - await assertFail(async () => { - await vault.escapeFunds(0x0, 1000); - }); + await assertFail(vault.escapeFunds(0x0, 1000, {gas: 4000000})); // can't send more then the balance - await assertFail(async () => { - await vault.escapeFunds(0x0, 11000, { from: vaultOwner }); - }); + await assertFail(vault.escapeFunds(0x0, 11000, { from: vaultOwner, gas: 4000000 })); }); it('escapeFunds should send funds to escapeHatchDestination', async function () { @@ -96,7 +92,7 @@ describe('Vault test', function () { const vaultBalance = await web3.eth.getBalance(vault.$address); assert.equal(9000, vaultBalance); - const expected = web3.utils.toBN(preBalance).add(web3.utils.toBN('1000')); + const expected = web3.utils.toBN(preBalance).add(web3.utils.toBN('1000')).toString(); const postBalance = await web3.eth.getBalance(escapeHatchDestination); assert.equal(expected, postBalance); diff --git a/test/helpers/assertFail.js b/test/helpers/assertFail.js index 52897e8..f9e2e74 100644 --- a/test/helpers/assertFail.js +++ b/test/helpers/assertFail.js @@ -1,10 +1,15 @@ const chai = require('chai'); const assert = chai.assert; -module.exports = async function(callback) { +module.exports = async function(promise) { let web3_error_thrown = false; try { - await callback(); + await promise + .then(({ status }) => { + if (status === '0x00') { + web3_error_thrown = true; + } + }); } catch (error) { if (error.message.includes("invalid opcode") || error.message.includes('revert')) web3_error_thrown = true; } From a79bb5d69343a977b94404e34cf8cf19dc58e9f8 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 25 Jan 2018 15:11:07 -0800 Subject: [PATCH 22/52] fix solc warning --- contracts/LiquidPledgingPlugins.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index 7c1de8d..1f5a472 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -34,7 +34,7 @@ contract LiquidPledgingPlugins is Owned { } function addValidPlugins(bytes32[] contractHashes) external onlyOwner { - for (var i = 0; i < contractHashes.length; i++) { + for (uint8 i = 0; i < contractHashes.length; i++) { addValidPlugin(contractHashes[i]); } } From 6cdceb62cf03295f6585a3d6d0444d379c5efe18 Mon Sep 17 00:00:00 2001 From: perissology Date: Wed, 7 Feb 2018 12:52:08 +0100 Subject: [PATCH 23/52] reset --- contracts/EternalStorage.sol | 8 ++++ contracts/EternallyPersistentLib.sol | 58 ++++++++-------------------- contracts/LiquidPledging.sol | 22 +++++------ contracts/LiquidPledgingBase.sol | 2 +- test/NormalOperation.js | 27 +++---------- 5 files changed, 42 insertions(+), 75 deletions(-) diff --git a/contracts/EternalStorage.sol b/contracts/EternalStorage.sol index 862bc9b..3531808 100644 --- a/contracts/EternalStorage.sol +++ b/contracts/EternalStorage.sol @@ -26,6 +26,10 @@ contract EternalStorage is Escapable { UIntStorage[record] = value; } + function incrementUIntValue(bytes32 record) public returns (uint) { + return UIntStorage[record] += 1; + } + /// Int Storage function getIntValue(bytes32 record) public view returns (int) { @@ -36,6 +40,10 @@ contract EternalStorage is Escapable { IntStorage[record] = value; } + function incrementIntValue(bytes32 record) public returns (int) { + return IntStorage[record] += int(1); + } + /// Address Storage function getAddressValue(bytes32 record) public view returns (address) { diff --git a/contracts/EternallyPersistentLib.sol b/contracts/EternallyPersistentLib.sol index 1309a77..067074a 100644 --- a/contracts/EternallyPersistentLib.sol +++ b/contracts/EternallyPersistentLib.sol @@ -33,47 +33,27 @@ library EternallyPersistentLib { function stgObjectGetString(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (string) { bytes32 record = keccak256(class, id, fieldName); - //Function signature - bytes4 sig = bytes4(keccak256("getStringValue(bytes32)")); + bytes4 sig = 0xa209a29c; // bytes4(keccak256("getStringValue(bytes32)")); string memory s; assembly { - let x := mload(0x40) //Find empty storage location using "free memory pointer" - mstore(x, sig) //Place signature at beginning of empty storage - mstore(add(x, 0x04), record) //Place first argument directly next to signature + let ptr := mload(0x40) //Find empty storage location using "free memory pointer" + mstore(ptr, sig) //Place signature at beginning of empty storage + mstore(add(ptr, 0x04), record) //Place first argument directly next to signature - let success := call(//This is the critical change (Pop the top stack value) - 5000, //5k gas - _storage, //To addr - 0, //No value - x, //Inputs are stored at location x - 0x24, //Inputs are 36 byes long - x, //Store output over input (saves space) - 0x80) //Outputs are 32 bytes long + let result := staticcall(sub(gas, 10000), _storage, ptr, 0x24, 0, 0) - let strL := mload(add(x, 0x20)) // Load the length of the string + let size := returndatasize + returndatacopy(ptr, 0, size) // overwrite ptr to save a bit of gas - jumpi(ask_more, gt(strL, 64)) - - mstore(0x40, add(x, add(strL, 0x40))) - - s := add(x, 0x20) - - ask_more : - mstore(x, sig) //Place signature at beginning of empty storage - mstore(add(x, 0x04), record) //Place first argument directly next to signature - - success := call(//This is the critical change (Pop the top stack value) - 5000, //5k gas - _storage, //To addr - 0, //No value - x, //Inputs are stored at location x - 0x24, //Inputs are 36 byes long - x, //Store output over input (saves space) - add(0x40, strL)) //Outputs are 32 bytes long - - mstore(0x40, add(x, add(strL, 0x40))) - s := add(x, 0x20) + // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. + // if the call returned error data, forward it + switch result case 0 { revert(ptr, size) } + default { + mstore(0x40, add(ptr, size)) // update free mem location + // We need to skip the first 32 bytes which contains the start offset of the returned byte array + s := add(ptr, 0x20) // set the string + } } return s; @@ -111,13 +91,7 @@ library EternallyPersistentLib { // Array function stgCollectionAddItem(EternalStorage _storage, bytes32 idArray) internal returns (uint) { - uint length = _storage.getUIntValue(keccak256(idArray, "length")); - - // Increment the size of the array - length++; - _storage.setUIntValue(keccak256(idArray, "length"), length); - - return length; + return _storage.incrementUIntValue(keccak256(idArray, "length")); } function stgCollectionLength(EternalStorage _storage, bytes32 idArray) internal view returns (uint) { diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index babfd0c..445c29b 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -21,7 +21,7 @@ pragma solidity ^0.4.11; import "./LiquidPledgingBase.sol"; -/// @dev `LiquidPleding` allows for liquid pledging through the use of +/// @dev `LiquidPledging` allows for liquid pledging through the use of /// internal id structures and delegate chaining. All basic operations for /// handling liquid pledging are supplied as well as plugin features /// to allow for expanded functionality. @@ -106,9 +106,8 @@ contract LiquidPledging is LiquidPledgingBase { { checkAdminOwner(idSender); - idPledge = normalizePledge(idPledge); + Pledges.Pledge memory p = normalizePledge(idPledge); - Pledges.Pledge memory p = findPledge(idPledge); PledgeAdminType receiverAdminType = getAdminType(idReceiver); require(p.pledgeState == Pledges.PledgeState.Pledged); @@ -229,8 +228,8 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that is to be redeemed into ether /// @param amount Quantity of ether (in wei) to be authorized function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - Pledges.Pledge memory p = findPledge(idPledge); + Pledges.Pledge memory p = normalizePledge(idPledge); // Updates pledge info + // = findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Pledged); checkAdminOwner(p.owner); @@ -289,7 +288,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.PledgeState.Pledged ); - oldPledge = normalizePledge(oldPledge); + oldPledge = _normalizePledge(oldPledge); doTransfer(p, oldPledge, amount); } @@ -310,9 +309,10 @@ contract LiquidPledging is LiquidPledgingBase { /// `oldPledge` function cancelPledge(uint64 idPledge, uint amount) public { //TODO fetch idPledge? OR return Pledge from this call? - idPledge = normalizePledge(idPledge); + // idPledge = normalizePledge(idPledge); - Pledges.Pledge memory p = findPledge(idPledge); + // Pledges.Pledge memory p = findPledge(idPledge); + Pledges.Pledge memory p = normalizePledge(idPledge); require(p.oldPledge != 0); checkAdminOwner(p.owner); @@ -604,12 +604,12 @@ contract LiquidPledging is LiquidPledgingBase { /// plugins, which also need to be predicted by the UI /// @param idPledge This is the id of the pledge that will be normalized /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { + function normalizePledge(uint64 idPledge) public returns(Pledges.Pledge) { Pledges.Pledge memory p = findPledge(idPledge); - return uint64(normalizePledge(p).id); + return _normalizePledge(p); } - function normalizePledge(Pledges.Pledge p) internal returns(Pledges.Pledge) { + function _normalizePledge(Pledges.Pledge p) internal returns(Pledges.Pledge) { // Check to make sure this pledge hasn't already been used // or is in the process of being used diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 9ef4b66..8c73a33 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -97,7 +97,7 @@ contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Esc /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked function checkAdminOwner(uint idAdmin) internal constant { - require(msg.sender == getAdminPlugin(idAdmin) || msg.sender == getAdminAddr(idAdmin)); + require(msg.sender == getAdminAddr(idAdmin) || msg.sender == getAdminPlugin(idAdmin)); } /// @notice A getter to find the longest commitTime out of the owner and all diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 4da88a1..a76aca7 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -1,6 +1,6 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require("ganache-cli"); +const TestRPC = require('ganache-cli'); const Web3 = require('web3'); const chai = require('chai'); const liquidpledging = require('../index.js'); @@ -341,26 +341,11 @@ describe('LiquidPledging test', function () { it('should throw if projectLevel > 20', async () => { let nAdmins = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.addProject('ProjectLevel1', '', adminProject1, 0, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel2', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel3', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel4', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel5', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel6', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel7', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel8', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel9', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel10', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel11', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel12', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel13', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel14', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel15', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel16', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel17', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel18', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel19', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); - await liquidPledging.addProject('ProjectLevel20', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel0', '', adminProject1, 0, 86400, 0, { from: adminProject1 }); + + for (let i = 2; i <= 20; i++) { + await liquidPledging.addProject(`ProjectLevel${i}`, '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + } assertFail( liquidPledging.addProject('ProjectLevel21', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1, gas: 4000000 }) From 369e6ae6cdb425ee5b206e39315d0da59b5e7cf0 Mon Sep 17 00:00:00 2001 From: perissology Date: Sat, 10 Feb 2018 15:14:52 +0100 Subject: [PATCH 24/52] first pass as AragonApp --- contracts/EscapableApp.sol | 89 +++++++ contracts/LPFactory.sol | 66 ++++++ contracts/LPVault.sol | 169 ++++++++------ contracts/LiquidPledging.sol | 344 ++++++++++++++-------------- contracts/LiquidPledgingBase.sol | 103 +++++---- contracts/LiquidPledgingMock.sol | 8 +- contracts/LiquidPledgingPlugins.sol | 14 +- contracts/PledgeAdmins.sol | 321 +++++++++++++------------- contracts/Pledges.sol | 174 +++----------- package.json | 5 +- test/NormalOperation.js | 27 ++- 11 files changed, 696 insertions(+), 624 deletions(-) create mode 100644 contracts/EscapableApp.sol create mode 100644 contracts/LPFactory.sol diff --git a/contracts/EscapableApp.sol b/contracts/EscapableApp.sol new file mode 100644 index 0000000..ddf2b39 --- /dev/null +++ b/contracts/EscapableApp.sol @@ -0,0 +1,89 @@ +pragma solidity ^0.4.15; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; +import "giveth-common-contracts/contracts/ERC20.sol"; +import "@aragon/os/contracts/apps/AragonApp.sol"; + + +/// @dev `Escapable` is a base level contract built off of the `Owned` +/// contract; it creates an escape hatch function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = bytes32(1); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit external { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); +} diff --git a/contracts/LPFactory.sol b/contracts/LPFactory.sol new file mode 100644 index 0000000..d7df7ff --- /dev/null +++ b/contracts/LPFactory.sol @@ -0,0 +1,66 @@ +pragma solidity ^0.4.18; + +import "@aragon/os/contracts/factory/DAOFactory.sol"; +import "./LPVault.sol"; +import "./LiquidPledging.sol"; + +contract LPFactory is DAOFactory { + address public vaultBase; + address public lpBase; + + bytes32 constant public VAULT_APP_ID = keccak256("vault"); + bytes32 constant public LP_APP_ID = keccak256("liquidPledging"); + + event DeployVault(address vault); + event DeployLiquidPledging(address liquidPledging); + + function LPFactory(address _vaultBase, address _lpBase) public DAOFactory(0) { + require(_vaultBase != 0); + require(_lpBase != 0); + vaultBase = _vaultBase; + lpBase = _lpBase; + } + + function newLP(address _root, address _escapeHatchDestination) public { + Kernel kernel = newDAO(this); + ACL acl = ACL(kernel.acl()); + + bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); + + acl.createPermission(this, address(kernel), appManagerRole, this); + + LPVault v = LPVault(kernel.newAppInstance(VAULT_APP_ID, vaultBase)); + LiquidPledging lp = LiquidPledging(kernel.newAppInstance(LP_APP_ID, lpBase)); + v.initialize(address(lp), _escapeHatchDestination); + lp.initialize(address(v), _escapeHatchDestination); + + _setPermissions(_root, acl, kernel, v, lp); + } + + function _setPermissions(address _root, ACL acl, Kernel kernel, LPVault v, LiquidPledging lp) internal { + bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); + bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); + bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); + bytes32 authPaymentRole = v.AUTHORIZE_PAYMENT_ROLE(); + bytes32 pledgeAdminRole = lp.PLEDGE_ADMIN_ROLE(); + bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); + + acl.createPermission(_root, address(v), hatchCallerRole, _root); + acl.createPermission(_root, address(lp), hatchCallerRole, _root); + acl.createPermission(_root, address(lp), pluginManagerRole, _root); + acl.createPermission(address(lp), address(v), authPaymentRole, _root); + acl.createPermission(0x0, address(lp), pledgeAdminRole, address(lp)); + // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways + + acl.grantPermission(_root, address(kernel), appManagerRole); + acl.grantPermission(_root, address(acl), permRole); + acl.revokePermission(this, address(kernel), appManagerRole); + acl.revokePermission(this, address(acl), permRole); + + acl.setPermissionManager(_root, address(kernel), appManagerRole); + acl.setPermissionManager(_root, address(acl), permRole); + + DeployVault(address(v)); + DeployLiquidPledging(address(lp)); + } +} \ No newline at end of file diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index d9cea8d..76fc2e6 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -27,28 +27,41 @@ pragma solidity ^0.4.11; /// be a safe place to store funds equipped with optional variable time delays /// to allow for an optional escapeHatch to be implemented in case of issues; /// future versions of this contract will be enabled for tokens -import "giveth-common-contracts/contracts/Escapable.sol"; +import "./EscapableApp.sol"; /// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract /// to confirm and cancel payments in the `LiquidPledging` contract. -contract LiquidPledging { +contract ILiquidPledging { function confirmPayment(uint64 idPledge, uint amount) public; function cancelPayment(uint64 idPledge, uint amount) public; } - /// @dev `LPVault` is a higher level contract built off of the `Escapable` /// contract that holds funds for the liquid pledging system. -contract LPVault is Escapable { +contract LPVault is EscapableApp { - LiquidPledging public liquidPledging; // LiquidPledging contract's address - bool public autoPay; // If false, payments will take 2 txs to be completed + bytes32 constant public CONFIRM_PAYMENT_ROLE = bytes32(1); + bytes32 constant public CANCEL_PAYMENT_ROLE = bytes32(2); + bytes32 constant public AUTHORIZE_PAYMENT_ROLE = bytes32(3); + bytes32 constant public SET_AUTOPAY_ROLE = bytes32(4); + + event AutoPaySet(bool autoPay); + event EscapeFundsCalled(address token, uint amount); + event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); + event CancelPayment(uint indexed idPayment, bytes32 indexed ref); + event AuthorizePayment( + uint indexed idPayment, + bytes32 indexed ref, + address indexed dest, + uint amount + ); enum PaymentStatus { Pending, // When the payment is awaiting confirmation Paid, // When the payment has been sent Canceled // When the payment will never be sent } + /// @dev `Payment` is a public structure that describes the details of /// each payment the `ref` param makes it easy to track the movements of /// funds transparently by its connection to other `Payment` structs @@ -59,13 +72,11 @@ contract LPVault is Escapable { uint amount; // amount of ETH (in wei) to be sent } + bool public autoPay; // If false, payments will take 2 txs to be completed + // @dev An array that contains all the payments for this LPVault Payment[] public payments; - - function LPVault(address _escapeHatchCaller, address _escapeHatchDestination) - Escapable(_escapeHatchCaller, _escapeHatchDestination) public - { - } + ILiquidPledging public liquidPledging; /// @dev The attached `LiquidPledging` contract is the only address that can /// call a function with this modifier @@ -74,31 +85,39 @@ contract LPVault is Escapable { _; } + function initialize(address _escapeHatchDestination) onlyInit external { + require(false); // overload the EscapableApp + } + + /// @param _liquidPledging + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { + initialized(); + require(_escapeHatchDestination != 0x0); + require(_liquidPledging != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + liquidPledging = ILiquidPledging(_liquidPledging); + } + /// @dev The fall back function allows ETH to be deposited into the LPVault /// through a simple send function () public payable {} - /// @notice `onlyOwner` used to attach a specific liquidPledging instance - /// to this LPvault; keep in mind that once a liquidPledging contract is - /// attached it cannot be undone, this vault will be forever connected - /// @param _newLiquidPledging A full liquid pledging contract - function setLiquidPledging(address _newLiquidPledging) public onlyOwner { - require(address(liquidPledging) == 0x0); - liquidPledging = LiquidPledging(_newLiquidPledging); - } - /// @notice Used to decentralize, toggles whether the LPVault will /// automatically confirm a payment after the payment has been authorized /// @param _automatic If true, payments will confirm instantly, if false /// the training wheels are put on and the owner must manually approve /// every payment - function setAutopay(bool _automatic) public onlyOwner { + function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, ar(_automatic)) { autoPay = _automatic; - AutoPaySet(); + AutoPaySet(autoPay); } - /// @notice `onlyLiquidPledging` authorizes payments from this contract, if - /// `autoPay == true` the transfer happens automatically `else` the `owner` + /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner` /// must call `confirmPayment()` for a transfer to occur (training wheels); /// either way, a new payment is added to `payments[]` /// @param _ref References the payment will normally be the pledgeID @@ -109,7 +128,7 @@ contract LPVault is Escapable { bytes32 _ref, address _dest, uint _amount - ) public onlyLiquidPledging returns (uint) + ) external authP(AUTHORIZE_PAYMENT_ROLE, arr(_dest, _amount)) returns (uint) { uint idPayment = payments.length; payments.length ++; @@ -132,51 +151,20 @@ contract LPVault is Escapable { /// this is generally used when `autopay` is `false` after a payment has /// has been authorized /// @param _idPayment Array lookup for the payment. - function confirmPayment(uint _idPayment) public onlyOwner { + function confirmPayment(uint _idPayment) public { doConfirmPayment(_idPayment); } - /// @notice Transfers ETH according to the data held within the specified - /// payment id (internal function) - /// @param _idPayment id number for the payment about to be fulfilled - function doConfirmPayment(uint _idPayment) internal { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Paid; - liquidPledging.confirmPayment(uint64(p.ref), p.amount); - - p.dest.transfer(p.amount); // Transfers ETH denominated in wei - - ConfirmPayment(_idPayment, p.ref); - } - /// @notice When `autopay` is `false` and after a payment has been authorized /// to allow the owner to cancel a payment instead of confirming it. /// @param _idPayment Array lookup for the payment. - function cancelPayment(uint _idPayment) public onlyOwner { + function cancelPayment(uint _idPayment) public { doCancelPayment(_idPayment); } - /// @notice Cancels a pending payment (internal function) - /// @param _idPayment id number for the payment - function doCancelPayment(uint _idPayment) internal { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Canceled; - - liquidPledging.cancelPayment(uint64(p.ref), p.amount); - - CancelPayment(_idPayment, p.ref); - - } - /// @notice `onlyOwner` An efficient way to confirm multiple payments /// @param _idPayments An array of multiple payment ids - function multiConfirm(uint[] _idPayments) public onlyOwner { + function multiConfirm(uint[] _idPayments) external { for (uint i = 0; i < _idPayments.length; i++) { doConfirmPayment(_idPayments[i]); } @@ -184,23 +172,18 @@ contract LPVault is Escapable { /// @notice `onlyOwner` An efficient way to cancel multiple payments /// @param _idPayments An array of multiple payment ids - function multiCancel(uint[] _idPayments) public onlyOwner { + function multiCancel(uint[] _idPayments) external { for (uint i = 0; i < _idPayments.length; i++) { doCancelPayment(_idPayments[i]); } } - /// @return The total number of payments that have ever been authorized - function nPayments() constant public returns (uint) { - return payments.length; - } - /// Transfer eth or tokens to the escapeHatchDestination. /// Used as a safety mechanism to prevent the vault from holding too much value /// before being thoroughly battle-tested. /// @param _token to transfer, use 0x0 for ether /// @param _amount to transfer - function escapeFunds(address _token, uint _amount) public onlyOwner { + function escapeFunds(address _token, uint _amount) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { /// @dev Logic for ether if (_token == 0x0) { require(this.balance >= _amount); @@ -216,14 +199,48 @@ contract LPVault is Escapable { EscapeFundsCalled(_token, _amount); } - event AutoPaySet(); - event EscapeFundsCalled(address token, uint amount); - event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); - event CancelPayment(uint indexed idPayment, bytes32 indexed ref); - event AuthorizePayment( - uint indexed idPayment, - bytes32 indexed ref, - address indexed dest, - uint amount - ); + /// @return The total number of payments that have ever been authorized + function nPayments() public view returns (uint) { + return payments.length; + } + + /// @notice Transfers ETH according to the data held within the specified + /// payment id (internal function) + /// @param _idPayment id number for the payment about to be fulfilled + function doConfirmPayment(uint _idPayment) internal { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); + + p.state = PaymentStatus.Paid; + liquidPledging.confirmPayment(uint64(p.ref), p.amount); + + p.dest.transfer(p.amount); // Transfers ETH denominated in wei + + ConfirmPayment(_idPayment, p.ref); + } + + /// @notice Cancels a pending payment (internal function) + /// @param _idPayment id number for the payment + function doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + + p.state = PaymentStatus.Canceled; + + liquidPledging.cancelPayment(uint64(p.ref), p.amount); + + CancelPayment(_idPayment, p.ref); + } + + function ar(bool a) internal pure returns (uint256[] r) { + r = new uint256[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 445c29b..31c27d5 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -36,13 +36,8 @@ contract LiquidPledging is LiquidPledgingBase { /// LiquidPledgingBase contract /// @dev This constructor also calls the constructor /// for `LiquidPledgingBase` - /// @param _vault The vault where ETH backing this pledge is stored - function LiquidPledging( - address _storage, - address _vault, - address _escapeHatchCaller, - address _escapeHatchDestination - ) LiquidPledgingBase(_storage, _vault, _escapeHatchCaller, _escapeHatchDestination) public + function LiquidPledging() + LiquidPledgingBase() public { } @@ -54,23 +49,24 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idGiver The id of the Giver donating; if 0, a new id is created /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver) public payable { + function donate(uint64 idGiver, uint64 idReceiver) authP(PLEDGE_ADMIN_ROLE, arr(uint(idGiver))) + public payable + { + // TODO: maybe need a separate role here to allow giver creation if (idGiver == 0) { - // default to a 3 day (259200 seconds) commitTime idGiver = uint64(addGiver("", "", 259200, ILiquidPledgingPlugin(0x0))); } - checkAdminOwner(idGiver); - - PledgeAdminType adminType = getAdminType(idGiver); - require(adminType == PledgeAdminType.Giver); + PledgeAdmins.PledgeAdmin storage sender = _findAdmin(idGiver); + // _checkAdminOwner(sender); + require(sender.adminType == PledgeAdminType.Giver); uint amount = msg.value; require(amount > 0); vault.transfer(amount); // Sends the `msg.value` (in wei) to the `vault` - Pledges.Pledge memory p = findOrCreatePledge( + uint64 idPledge = _findOrCreatePledge( idGiver, new uint64[](0), // Creates empty array for delegationChain 0, @@ -79,13 +75,12 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.PledgeState.Pledged ); + Pledges.Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; - p.amount += amount; - setPledgeAmount(p.id, p.amount); + Transfer(0, idPledge, amount); // An event - Transfer(0, p.id, amount); // An event - - transfer(idGiver, uint64(p.id), amount, idReceiver); // LP accounting + transfer(idGiver, idPledge, amount, idReceiver); // LP accounting } /// @notice Transfers amounts between pledges for internal accounting @@ -102,52 +97,53 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idPledge, uint amount, uint64 idReceiver - ) public + ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idSender), amount)) public { - checkAdminOwner(idSender); + idPledge = normalizePledge(idPledge); - Pledges.Pledge memory p = normalizePledge(idPledge); + Pledges.Pledge storage p = _findPledge(idPledge); + PledgeAdmins.PledgeAdmin storage receiver = _findAdmin(idReceiver); + // PledgeAdmins.PledgeAdmin storage sender = _findAdmin(idSender); - PledgeAdminType receiverAdminType = getAdminType(idReceiver); - - require(p.pledgeState == Pledges.PledgeState.Pledged); + // _checkAdminOwner(sender); + require(p.pledgeState == PledgeState.Pledged); // If the sender is the owner of the Pledge if (p.owner == idSender) { - if (receiverAdminType == PledgeAdminType.Giver) { - transferOwnershipToGiver(p, amount, idReceiver); - } else if (receiverAdminType == PledgeAdminType.Project) { - transferOwnershipToProject(p, amount, idReceiver); - } else if (receiverAdminType == PledgeAdminType.Delegate) { + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { - uint recieverDIdx = getDelegateIdx(p, idReceiver); + uint recieverDIdx = _getDelegateIdx(p, idReceiver); if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { // if there is an intendedProject and the receiver is in the delegationChain, // then we want to preserve the delegationChain as this is a veto of the // intendedProject by the owner if (recieverDIdx == p.delegationChain.length - 1) { - Pledges.Pledge memory toPledge = findOrCreatePledge( + uint64 toPledge = _findOrCreatePledge( p.owner, p.delegationChain, 0, 0, p.oldPledge, Pledges.PledgeState.Pledged); - doTransfer(p, toPledge, amount); + _doTransfer(idPledge, toPledge, amount); } else { - undelegate(p, amount, p.delegationChain.length - receiverDIdx - 1); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); } } else { // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, // so we want to reset the delegationChain - p = undelegate( - p, + idPledge = _undelegate( + idPledge, amount, p.delegationChain.length ); - appendDelegate(p, amount, idReceiver); + _appendDelegate(idPledge, amount, idReceiver); } } else { @@ -159,47 +155,47 @@ contract LiquidPledging is LiquidPledgingBase { } // If the sender is a Delegate - uint senderDIdx = getDelegateIdx(p, idSender); + uint senderDIdx = _getDelegateIdx(p, idSender); if (senderDIdx != NOTFOUND) { // And the receiver is another Giver - if (receiverAdminType == PledgeAdminType.Giver) { + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { // Only transfer to the Giver who owns the pldege assert(p.owner == idReceiver); - undelegate(p, amount, p.delegationChain.length); + _undelegate(idPledge, amount, p.delegationChain.length); return; } // And the receiver is another Delegate - if (receiverAdminType == PledgeAdminType.Delegate) { - uint receiverDIdx = getDelegateIdx(p, idReceiver); + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); // And not in the delegationChain if (receiverDIdx == NOTFOUND) { - p = undelegate( - p, + idPledge = _undelegate( + idPledge, amount, p.delegationChain.length - senderDIdx - 1 ); - appendDelegate(p, amount, idReceiver); + _appendDelegate(idPledge, amount, idReceiver); // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and // the receiver is appended at the end of the delegationChain } else if (receiverDIdx > senderDIdx) { - p = undelegate( - p, + idPledge = _undelegate( + idPledge, amount, p.delegationChain.length - senderDIdx - 1 ); - appendDelegate(p, amount, idReceiver); + _appendDelegate(idPledge, amount, idReceiver); // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - undelegate( - p, + _undelegate( + idPledge, amount, p.delegationChain.length - receiverDIdx - 1 ); @@ -209,13 +205,13 @@ contract LiquidPledging is LiquidPledgingBase { // And the receiver is a Project, all the delegates after the sender // are removed and the amount is pre-committed to the project - if (receiverAdminType == PledgeAdminType.Project) { - p = undelegate( - p, + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, amount, p.delegationChain.length - senderDIdx - 1 ); - proposeAssignProject(p, amount, idReceiver); + _proposeAssignProject(idPledge, amount, idReceiver); return; } } @@ -227,13 +223,16 @@ contract LiquidPledging is LiquidPledgingBase { /// intendedProject /// @param idPledge Id of the pledge that is to be redeemed into ether /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - Pledges.Pledge memory p = normalizePledge(idPledge); // Updates pledge info - // = findPledge(idPledge); - require(p.pledgeState == Pledges.PledgeState.Pledged); - checkAdminOwner(p.owner); + function withdraw(uint64 idPledge, uint amount) authP(PLEDGE_ADMIN_ROLE, arr(uint(idPledge), amount)) public { + idPledge = normalizePledge(idPledge); // Updates pledge info - Pledges.Pledge memory newPledge = findOrCreatePledge( + Pledges.Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + + PledgeAdmins.PledgeAdmin storage owner = _findAdmin(p.owner); + // _checkAdminOwner(owner); + + uint64 idNewPledge = _findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -242,9 +241,9 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.PledgeState.Paying ); - doTransfer(p, newPledge, amount); + _doTransfer(idPledge, idNewPledge, amount); - vault.authorizePayment(bytes32(newPledge.id), getAdminAddr(p.owner), amount); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, amount); } /// @notice `onlyVault` Confirms a withdraw request changing the Pledges.PledgeState @@ -253,11 +252,11 @@ contract LiquidPledging is LiquidPledgingBase { /// @param amount Quantity of ether (in wei) to be withdrawn function confirmPayment(uint64 idPledge, uint amount) public onlyVault { //TODO don't fetch entire pledge - Pledges.Pledge memory p = findPledge(idPledge); + Pledges.Pledge storage p = _findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Paying); - Pledges.Pledge memory newPledge = findOrCreatePledge( + uint64 idNewPledge = _findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -266,7 +265,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.PledgeState.Paid ); - doTransfer(p, newPledge, amount); + _doTransfer(idPledge, idNewPledge, amount); } /// @notice `onlyVault` Cancels a withdraw request, changing the Pledges.PledgeState @@ -274,12 +273,12 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that's withdraw is to be canceled /// @param amount Quantity of ether (in wei) to be canceled function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledges.Pledge memory p = findPledge(idPledge); + Pledges.Pledge storage p = _findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Paying); // When a payment is canceled, never is assigned to a project. - Pledges.Pledge memory oldPledge = findOrCreatePledge( + uint64 idOldPledge = _findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -288,17 +287,18 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.PledgeState.Pledged ); - oldPledge = _normalizePledge(oldPledge); + idOldPledge = normalizePledge(idOldPledge); - doTransfer(p, oldPledge, amount); + _doTransfer(idPledge, idOldPledge, amount); } /// @notice Changes the `project.canceled` flag to `true`; cannot be undone /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - checkAdminOwner(idProject); + function cancelProject(uint64 idProject) authP(PLEDGE_ADMIN_ROLE, arr(uint(idProject))) public { + PledgeAdmins.PledgeAdmin storage project = _findAdmin(idProject); + // _checkAdminOwner(project); + project.canceled = true; - _storage.stgObjectSetBoolean(PLEDGE_ADMIN, idProject, "canceled", true); CancelProject(idProject); } @@ -307,19 +307,17 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that is to be canceled /// @param amount Quantity of ether (in wei) to be transfered to the /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - //TODO fetch idPledge? OR return Pledge from this call? - // idPledge = normalizePledge(idPledge); + function cancelPledge(uint64 idPledge, uint amount) authP(PLEDGE_ADMIN_ROLE, arr(uint(idPledge))) public { + idPledge = normalizePledge(idPledge); - // Pledges.Pledge memory p = findPledge(idPledge); - Pledges.Pledge memory p = normalizePledge(idPledge); + Pledges.Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + // PledgeAdmins.PledgeAdmin storage a = _findAdmin(p.owner); + // _checkAdminOwner(a); - uint64 oldPledgeId = getOldestPledgeNotCanceled(p.oldPledge); - Pledges.Pledge memory oldPledge = findPledge(oldPledgeId); - doTransfer(p, oldPledge, amount); + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); } @@ -414,21 +412,23 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice `transferOwnershipToProject` allows for the transfer of /// ownership to the project, but it can also be called by a project /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param p the pledge to be transfered. + /// @param idPledge the id of the pledge to be transfered. /// @param amount Quantity of value that's being transfered /// @param idReceiver The new owner of the project (or self to un-delegate) - function transferOwnershipToProject( - Pledges.Pledge p, + function _transferOwnershipToProject( + uint64 idPledge, uint amount, uint64 idReceiver ) internal { + Pledges.Pledge storage p = _findPledge(idPledge); + // Ensure that the pledge is not already at max pledge depth // and the project has not been canceled - require(getPledgeLevel(p.oldPledge) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!_isProjectCanceled(idReceiver)); - Pledges.Pledge memory oldPledge = findOrCreatePledge( + uint64 oldPledge = _findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -436,31 +436,31 @@ contract LiquidPledging is LiquidPledgingBase { p.oldPledge, Pledges.PledgeState.Pledged ); - Pledges.Pledge memory toPledge = findOrCreatePledge( + uint64 toPledge = _findOrCreatePledge( idReceiver, // Set the new owner new uint64[](0), // clear the delegation chain 0, 0, - uint64(oldPledge.id), + uint64(oldPledge), Pledges.PledgeState.Pledged ); - doTransfer(p, toPledge, amount); + _doTransfer(idPledge, toPledge, amount); } /// @notice `transferOwnershipToGiver` allows for the transfer of /// value back to the Giver, value is placed in a pledged state /// without being attached to a project, delegation chain, or time line. - /// @param p the pledge to be transfered. + /// @param idPledge the id of the pledge to be transfered. /// @param amount Quantity of value that's being transfered /// @param idReceiver The new owner of the pledge - function transferOwnershipToGiver( - Pledges.Pledge p, + function _transferOwnershipToGiver( + uint64 idPledge, uint amount, uint64 idReceiver ) internal { - Pledges.Pledge memory toPledge = findOrCreatePledge( + uint64 toPledge = _findOrCreatePledge( idReceiver, new uint64[](0), 0, @@ -468,32 +468,34 @@ contract LiquidPledging is LiquidPledgingBase { 0, Pledges.PledgeState.Pledged ); - doTransfer(p, toPledge, amount); + _doTransfer(idPledge, toPledge, amount); } /// @notice `appendDelegate` allows for a delegate to be added onto the /// end of the delegate chain for a given Pledge. - /// @param p the pledge thats delegate chain will be modified. + /// @param idPledge the id of the pledge thats delegate chain will be modified. /// @param amount Quantity of value that's being chained. /// @param idReceiver The delegate to be added at the end of the chain - function appendDelegate( - Pledges.Pledge p, + function _appendDelegate( + uint64 idPledge, uint amount, uint64 idReceiver ) internal { + Pledges.Pledge storage p = _findPledge(idPledge); + require(p.delegationChain.length < MAX_DELEGATES); uint64[] memory newDelegationChain = new uint64[]( p.delegationChain.length + 1 ); - for (uint i = 0; i= amount); pFrom.amount -= amount; - setPledgeAmount(pFrom.id, pFrom.amount); pTo.amount += amount; - setPledgeAmount(pTo.id, pTo.amount); - Transfer(pFrom.id, pTo.id, amount); - callPlugins(false, pFrom, pTo, amount); + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); } /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: @@ -604,22 +608,18 @@ contract LiquidPledging is LiquidPledgingBase { /// plugins, which also need to be predicted by the UI /// @param idPledge This is the id of the pledge that will be normalized /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(Pledges.Pledge) { - Pledges.Pledge memory p = findPledge(idPledge); - return _normalizePledge(p); - } - - function _normalizePledge(Pledges.Pledge p) internal returns(Pledges.Pledge) { + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledges.Pledge storage p = _findPledge(idPledge); // Check to make sure this pledge hasn't already been used // or is in the process of being used if (p.pledgeState != Pledges.PledgeState.Pledged) { - return p; + return idPledge; } // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( getTime() > p.commitTime)) { - Pledges.Pledge memory oldPledge = findOrCreatePledge( + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( p.owner, p.delegationChain, 0, @@ -627,26 +627,25 @@ contract LiquidPledging is LiquidPledgingBase { p.oldPledge, Pledges.PledgeState.Pledged ); - Pledges.Pledge memory toPledge = findOrCreatePledge( + uint64 toPledge = _findOrCreatePledge( p.intendedProject, new uint64[](0), 0, 0, - uint64(oldPledge.id), + oldPledge, Pledges.PledgeState.Pledged ); - doTransfer(p, toPledge, p.amount); - p = toPledge; + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); } - uint64 oldestPledgeId = getOldestPledgeNotCanceled(uint64(p.id)); - if (p.id != oldestPledgeId) { - toPledge = findPledge(oldestPledgeId); - doTransfer(p, toPledge, p.amount); - p = toPledge; + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); } - return p; + return toPledge; } ///////////// @@ -667,7 +666,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param context The situation that is triggering the plugin. See plugin /// for a full description of contexts. /// @param amount The amount of value that is being transfered. - function callPlugin( + function _callPlugin( bool before, uint64 adminId, uint64 fromPledge, @@ -678,14 +677,14 @@ contract LiquidPledging is LiquidPledgingBase { uint newAmount; allowedAmount = amount; - address plugin = getAdminPlugin(adminId); + PledgeAdmins.PledgeAdmin storage admin = _findAdmin(adminId); // Checks admin has a plugin assigned and a non-zero amount is requested - if (plugin != 0 && allowedAmount > 0) { + if (address(admin.plugin) != 0 && allowedAmount > 0) { // There are two seperate functions called in the plugin. // One is called before the transfer and one after if (before) { - newAmount = ILiquidPledgingPlugin(plugin).beforeTransfer( + newAmount = admin.plugin.beforeTransfer( adminId, fromPledge, toPledge, @@ -695,7 +694,7 @@ contract LiquidPledging is LiquidPledgingBase { require(newAmount <= allowedAmount); allowedAmount = newAmount; } else { - ILiquidPledgingPlugin(plugin).afterTransfer( + admin.plugin.afterTransfer( adminId, fromPledge, toPledge, @@ -712,29 +711,26 @@ contract LiquidPledging is LiquidPledgingBase { /// on the `p` and `fromPledge` parameters. /// @param before This toggle determines whether the plugin call is occuring /// before or after a transfer. - /// @param p This is the pledge on which this plugin + /// @param idPledge This is the id of the pledge on which this plugin /// is being called. /// @param fromPledge This is the Id from which value is being transfered. /// @param toPledge This is the Id that value is being transfered to. /// @param amount The amount of value that is being transfered. - function callPluginsPledge( + function _callPluginsPledge( bool before, - Pledges.Pledge p, + uint64 idPledge, uint64 fromPledge, uint64 toPledge, uint amount ) internal returns (uint allowedAmount) { // Determine if callPlugin is being applied in a receiving // or transferring context - uint64 offset = p.id == fromPledge ? 0 : 256; + uint64 offset = idPledge == fromPledge ? 0 : 256; allowedAmount = amount; - - // TODO I think we can remove these check b/c the admins array only grows, thus if adminId is out of index, it will just return 0x0 & skip the plugin call -// uint adminsSize = pledgeAdminsCount(); -// require(adminsSize >= p.owner); + Pledges.Pledge storage p = _findPledge(idPledge); // Always call the plugin on the owner - allowedAmount = callPlugin( + allowedAmount = _callPlugin( before, p.owner, fromPledge, @@ -744,14 +740,13 @@ contract LiquidPledging is LiquidPledgingBase { ); // Apply call plugin to all delegates - for (uint64 i=0; i= p.delegationChain[i]); - allowedAmount = callPlugin( + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( before, p.delegationChain[i], fromPledge, toPledge, - offset + i+1, + offset + i + 1, allowedAmount ); } @@ -760,8 +755,7 @@ contract LiquidPledging is LiquidPledgingBase { // either a transferring or receiving context based on offset // on the intended project if (p.intendedProject > 0) { -// require(adminsSize >= p.intendedProject); - allowedAmount = callPlugin( + allowedAmount = _callPlugin( before, p.intendedProject, fromPledge, @@ -781,29 +775,29 @@ contract LiquidPledging is LiquidPledgingBase { /// @param fromPledge This is the Id from which value is being transferred. /// @param toPledge This is the Id that value is being transferred to. /// @param amount The amount of value that is being transferred. - function callPlugins( + function _callPlugins( bool before, - Pledges.Pledge fromPledge, - Pledges.Pledge toPledge, + uint64 fromPledge, + uint64 toPledge, uint amount ) internal returns (uint allowedAmount) { allowedAmount = amount; // Call the pledges plugins in the transfer context - allowedAmount = callPluginsPledge( + allowedAmount = _callPluginsPledge( before, fromPledge, - uint64(fromPledge.id), - uint64(toPledge.id), + fromPledge, + toPledge, allowedAmount ); // Call the pledges plugins in the receive context - allowedAmount = callPluginsPledge( + allowedAmount = _callPluginsPledge( before, toPledge, - uint64(fromPledge.id), - uint64(toPledge.id), + fromPledge, + toPledge, allowedAmount ); } @@ -813,7 +807,7 @@ contract LiquidPledging is LiquidPledgingBase { ///////////// /// @notice Basic helper function to return the current time - function getTime() internal view returns (uint) { + function _getTime() internal view returns (uint) { return now; } diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 8c73a33..bc14bec 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -20,15 +20,15 @@ pragma solidity ^0.4.11; */ import "./ILiquidPledgingPlugin.sol"; -import "giveth-common-contracts/contracts/Escapable.sol"; +// import "giveth-common-contracts/contracts/Escapable.sol"; +import "./EscapableApp.sol"; import "./PledgeAdmins.sol"; import "./Pledges.sol"; -import "./LiquidPledgingStorage.sol"; /// @dev This is an interface for `LPVault` which serves as a secure storage for /// the ETH that backs the Pledges, only after `LiquidPledging` authorizes /// payments can Pledges be converted for ETH -interface LPVault { +interface ILPVault { function authorizePayment(bytes32 _ref, address _dest, uint _amount) public; function () public payable; } @@ -36,11 +36,10 @@ interface LPVault { /// @dev `LiquidPledgingBase` is the base level contract used to carry out /// liquidPledging's most basic functions, mostly handling and searching the /// data structures -contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Escapable { +contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { - LPVault public vault; + ILPVault public vault; - ///////////// // Modifiers ///////////// @@ -57,21 +56,31 @@ contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Esc // Constructor /////////////// - /// @notice The Constructor creates `LiquidPledgingBase` on the blockchain - /// @param _vault The vault where the ETH backing the pledges is stored - function LiquidPledgingBase( - address _storage, - address _vault, - address _escapeHatchCaller, - address _escapeHatchDestination - ) LiquidPledgingStorage(_storage) - PledgeAdmins(_storage) - Pledges(_storage) - Escapable(_escapeHatchCaller, _escapeHatchDestination) public + function LiquidPledgingBase() + PledgeAdmins() + Pledges() public { - vault = LPVault(_vault); // Assigns the specified vault } + function initialize(address _escapeHatchDestination) onlyInit external { + require(false); // overload the EscapableApp + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit external { + initialized(); + require(_escapeHatchDestination != 0x0); + require(_vault != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + vault = ILPVault(_vault); + } + + ///////////////////////////// // Public constant functions ///////////////////////////// @@ -79,14 +88,16 @@ contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Esc /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getDelegate(uint idPledge, uint idxDelegate) public view returns( - uint idDelegate, + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, address addr, string name ) { - idDelegate = getPledgeDelegate(idPledge, idxDelegate); - addr = getAdminAddr(idDelegate); - name = getAdminName(idDelegate); + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; } //////////////////// @@ -95,28 +106,25 @@ contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Esc /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint idAdmin) internal constant { - require(msg.sender == getAdminAddr(idAdmin) || msg.sender == getAdminPlugin(idAdmin)); - } + /// @param a The admin being checked + // function _checkAdminOwner(PledgeAdmin a) internal constant { + // require(msg.sender == a.addr || msg.sender == address(a.plugin)); + // } /// @notice A getter to find the longest commitTime out of the owner and all /// the delegates for a specified pledge /// @param p The Pledge being queried /// @return The maximum commitTime out of the owner and all the delegates - function maxCommitTime(Pledge p) internal view returns(uint commitTime) { - uint adminsSize = numberOfPledgeAdmins(); - require(adminsSize >= p.owner); - - commitTime = getAdminCommitTime(p.owner); // start with the owner's commitTime + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime for (uint i = 0; i < p.delegationChain.length; i++) { - require(adminsSize >= p.delegationChain[i]); - uint delegateCommitTime = getAdminCommitTime(p.delegationChain[i]); + a = _findAdmin(p.delegationChain[i]); // If a delegate's commitTime is longer, make it the new commitTime - if (delegateCommitTime > commitTime) { - commitTime = delegateCommitTime; + if (a.commitTime > commitTime) { + commitTime = a.commitTime; } } } @@ -124,7 +132,7 @@ contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Esc /// @notice A getter to find the oldest pledge that hasn't been canceled /// @param idPledge The starting place to lookup the pledges /// @return The oldest idPledge that hasn't been canceled (DUH!) - function getOldestPledgeNotCanceled( + function _getOldestPledgeNotCanceled( uint64 idPledge ) internal view returns(uint64) { @@ -132,19 +140,18 @@ contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, Esc return 0; } - uint owner = getPledgeOwner(idPledge); - - PledgeAdminType adminType = getAdminType(owner); - if (adminType == PledgeAdminType.Giver) { - return idPledge; - } - assert(adminType == PledgeAdminType.Project); - - if (!isProjectCanceled(owner)) { + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { return idPledge; } - uint64 oldPledge = uint64(getPledgeOldPledge(idPledge)); - return getOldestPledgeNotCanceled(oldPledge); + assert(admin.adminType == PledgeAdminType.Project); + if (!_isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); } } diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index 763c95e..0fbed3a 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -28,13 +28,7 @@ contract LiquidPledgingMock is LiquidPledging { /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` /// instance and sets the mocked time to the current blocktime. - /// @param _vault The vault where ETH backing this pledge is stored - function LiquidPledgingMock( - address _storage, - address _vault, - address _escapeHatchCaller, - address _escapeHatchDestination - ) LiquidPledging(_storage, _vault, _escapeHatchCaller, _escapeHatchDestination) public { + function LiquidPledgingMock() LiquidPledging() public { mock_time = now; } diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index 1f5a472..d28af85 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -19,31 +19,33 @@ pragma solidity ^0.4.18; along with this program. If not, see . */ -import "giveth-common-contracts/contracts/Owned.sol"; +import "@aragon/os/contracts/apps/AragonApp.sol"; /// NOTICE: This contract is not using EternalStorage. This is done to save gas. The pluginWhitelist /// should be fairly small, and would be trivial and relatively cheap to re-add all valid plugins /// when the LiquidPledging contract is upgraded -contract LiquidPledgingPlugins is Owned { +contract LiquidPledgingPlugins is AragonApp { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); mapping (bytes32 => bool) pluginWhitelist; bool public whitelistDisabled = false; - function addValidPlugin(bytes32 contractHash) public onlyOwner { + function addValidPlugin(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { pluginWhitelist[contractHash] = true; } - function addValidPlugins(bytes32[] contractHashes) external onlyOwner { + function addValidPlugins(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { for (uint8 i = 0; i < contractHashes.length; i++) { addValidPlugin(contractHashes[i]); } } - function removeValidPlugin(bytes32 contractHash) external onlyOwner { + function removeValidPlugin(bytes32 contractHash) external auth(PLUGIN_MANAGER_ROLE) { pluginWhitelist[contractHash] = false; } - function useWhitelist(bool useWhitelist) external onlyOwner { + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { whitelistDisabled = !useWhitelist; } diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 437d101..1115fda 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -20,42 +20,53 @@ pragma solidity ^0.4.18; */ import "./ILiquidPledgingPlugin.sol"; -import "./EternallyPersistentLib.sol"; -import "./LiquidPledgingStorage.sol"; import "./LiquidPledgingPlugins.sol"; +import "@aragon/os/contracts/apps/AragonApp.sol"; +import "@aragon/os/contracts/acl/ACL.sol"; -contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { - using EternallyPersistentLib for EternalStorage; +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + bytes32 constant public PLEDGE_ADMIN_ROLE = keccak256("PLEDGE_ADMIN_ROLE"); // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; - // Constants used when dealing with storage/retrieval of PledgeAdmins - string constant PLEDGE_ADMIN = "PledgeAdmin"; - bytes32 constant PLEDGE_ADMINS_ARRAY = keccak256("pledgeAdmins"); - - //TODO we can pack some of these struct values, which should save space. TEST THIS - //TODO making functions public may lower deployment cost, but increase gas / tx costs. TEST THIS - //TODO is it cheaper to issue a storage check before updating? where should this be done? EternalStorage? - enum PledgeAdminType { Giver, Delegate, Project } + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + string name; + string url; // Can be IPFS hash + uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + } + // Events - event GiverAdded(uint indexed idGiver); - event GiverUpdated(uint indexed idGiver); - event DelegateAdded(uint indexed idDelegate); - event DelegateUpdated(uint indexed idDelegate); - event ProjectAdded(uint indexed idProject); - event ProjectUpdated(uint indexed idProject); + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin /////////////// // Constructor /////////////// - function PledgeAdmins(address _storage) - LiquidPledgingStorage(_storage) + function PledgeAdmins() LiquidPledgingPlugins() public { } @@ -75,21 +86,31 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { function addGiver( string name, string url, - uint commitTime, + uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint idGiver) + ) public returns (uint64 idGiver) { require(isValidPlugin(plugin)); // Plugin check - idGiver = _storage.stgCollectionAddItem(PLEDGE_ADMINS_ARRAY); + idGiver = uint64(admins.length); // Save the fields - // don't set adminType to save gas, b/c 0 is Giver - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idGiver, "addr", msg.sender); - _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "name", name); - _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "url", url); - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idGiver, "commitTime", commitTime); - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idGiver, "plugin", address(plugin)); + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + msg.sender, // TODO: is this needed? + name, + url, + commitTime, + 0, + false, + plugin) + ); + + _grantPledgeAdminPermission(msg.sender, idGiver); + if (address(plugin) != 0) { + _grantPledgeAdminPermission(address(plugin), idGiver); + } GiverAdded(idGiver); } @@ -104,21 +125,20 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { /// @param newCommitTime Sets the length of time in seconds the Giver has to /// veto when the Giver's delegates Pledge funds to a project function updateGiver( - uint idGiver, + uint64 idGiver, address newAddr, string newName, string newUrl, uint64 newCommitTime - ) public + ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idGiver))) public { - require(getAdminType(idGiver) == PledgeAdminType.Giver); // Must be a Giver - require(getAdminAddr(idGiver) == msg.sender); // Current addr had to send this tx - - // Save the fields - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idGiver, "addr", newAddr); - _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "name", newName); - _storage.stgObjectSetString(PLEDGE_ADMIN, idGiver, "url", newUrl); - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idGiver, "commitTime", newCommitTime); + PledgeAdmin storage giver = _findAdmin(idGiver); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + // require(giver.addr == msg.sender); // Current addr had to send this tx + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; GiverUpdated(idGiver); } @@ -138,19 +158,28 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint idDelegate) + ) public returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check - idDelegate = _storage.stgCollectionAddItem(PLEDGE_ADMINS_ARRAY); + idDelegate = uint64(admins.length); - // Save the fields - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idDelegate, "adminType", uint(PledgeAdminType.Delegate)); - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idDelegate, "addr", msg.sender); - _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "name", name); - _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "url", url); - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idDelegate, "commitTime", commitTime); - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idDelegate, "plugin", address(plugin)); + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + name, + url, + commitTime, + 0, + false, + plugin) + ); + + _grantPledgeAdminPermission(msg.sender, idDelegate); + if (address(plugin) != 0) { + _grantPledgeAdminPermission(address(plugin), idDelegate); + } DelegateAdded(idDelegate); } @@ -167,21 +196,20 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { /// the time allowed to veto any event must be greater than or equal to /// this time. function updateDelegate( - uint idDelegate, + uint64 idDelegate, address newAddr, string newName, string newUrl, uint64 newCommitTime - ) public + ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idDelegate))) public { - require(getAdminType(idDelegate) == PledgeAdminType.Delegate); - require(getAdminAddr(idDelegate) == msg.sender); // Current addr had to send this tx - - // Save the fields - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idDelegate, "addr", newAddr); - _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "name", newName); - _storage.stgObjectSetString(PLEDGE_ADMIN, idDelegate, "url", newUrl); - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idDelegate, "commitTime", newCommitTime); + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(delegate.adminType == PledgeAdminType.Delegate); + // require(delegate.addr == msg.sender);// Current addr had to send this tx + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; DelegateUpdated(idDelegate); } @@ -205,27 +233,35 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint idProject) + ) public returns (uint64 idProject) { require(isValidPlugin(plugin)); if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // require(a.adminType == PledgeAdminType.Project); // getProjectLevel will check that parentProject has a `Project` adminType - require(getProjectLevel(parentProject) < MAX_SUBPROJECT_LEVEL); + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); } - idProject = _storage.stgCollectionAddItem(PLEDGE_ADMINS_ARRAY);//, idProject); + idProject = uint64(admins.length); - // Save the fields - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "adminType", uint(PledgeAdminType.Project)); - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idProject, "addr", projectAdmin); - _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "name", name); - _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "url", url); + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + name, + url, + commitTime, + parentProject, + false, + plugin) + ); - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "parentProject", parentProject); - - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "commitTime", commitTime); - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idProject, "plugin", address(plugin)); + _grantPledgeAdminPermission(msg.sender, idProject); + if (address(plugin) != 0) { + _grantPledgeAdminPermission(address(plugin), idProject); + } ProjectAdded(idProject); } @@ -241,21 +277,22 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { /// to veto when the Project delegates to a Delegate and they pledge those /// funds to a project function updateProject( - uint idProject, + uint64 idProject, address newAddr, string newName, string newUrl, uint64 newCommitTime - ) public + ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idProject))) public { - require(getAdminType(idProject) == PledgeAdminType.Project); - require(getAdminAddr(idProject) == msg.sender); // Current addr had to send this tx + PledgeAdmin storage project = _findAdmin(idProject); - // Save the fields - _storage.stgObjectSetAddress(PLEDGE_ADMIN, idProject, "addr", newAddr); - _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "name", newName); - _storage.stgObjectSetString(PLEDGE_ADMIN, idProject, "url", newUrl); - _storage.stgObjectSetUInt(PLEDGE_ADMIN, idProject, "commitTime", newCommitTime); + require(project.adminType == PledgeAdminType.Project); + // require(project.addr == msg.sender); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; ProjectUpdated(idProject); } @@ -268,7 +305,7 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . function numberOfPledgeAdmins() public constant returns(uint) { - return _storage.stgCollectionLength(PLEDGE_ADMINS_ARRAY); + return admins.length - 1; } /// @notice A constant getter to check the details of a specified Admin @@ -284,7 +321,7 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) public view returns ( PledgeAdminType adminType, address addr, string name, @@ -294,20 +331,15 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { bool canceled, address plugin ) { - adminType = getAdminType(idAdmin); - addr = getAdminAddr(idAdmin); - name = getAdminName(idAdmin); - url = _storage.stgObjectGetString(PLEDGE_ADMIN, idAdmin, "url"); - commitTime = uint64(getAdminCommitTime(idAdmin)); - - // parentProject & canceled only belong to Project admins, - // so don't waste the gas to fetch the data - if (adminType == PledgeAdminType.Project) { - parentProject = uint64(getAdminParentProject(idAdmin)); - canceled = getAdminCanceled(idAdmin); - } - - plugin = getAdminPlugin(idAdmin); + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); } @@ -315,97 +347,60 @@ contract PledgeAdmins is LiquidPledgingStorage, LiquidPledgingPlugins { // Internal methods /////////////////// + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + /// @notice A getter to find if a specified Project has been canceled /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled - function isProjectCanceled(uint projectId) + function _isProjectCanceled(uint64 projectId) internal constant returns (bool) { - require(numberOfPledgeAdmins() >= projectId); + PledgeAdmin storage a = _findAdmin(projectId); - PledgeAdminType adminType = getAdminType(projectId); - - if (adminType == PledgeAdminType.Giver) { + if (a.adminType == PledgeAdminType.Giver) { return false; } - assert(adminType == PledgeAdminType.Project); - if (getAdminCanceled(projectId)) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { return true; } - - uint parentProject = getAdminParentProject(projectId); - if (parentProject == 0) { + if (a.parentProject == 0) { return false; } - return isProjectCanceled(parentProject); + return _isProjectCanceled(a.parentProject); } /// @notice Find the level of authority a specific Project has /// using a recursive loop - /// @param idProject The id of the Project being queried + /// @param a The project admin being queried /// @return The level of authority a specific Project has - function getProjectLevel(uint idProject) internal returns(uint) { - assert(getAdminType(idProject) == PledgeAdminType.Project); - uint parentProject = getAdminParentProject(idProject); - if (parentProject == 0) { + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { return(1); } - return getProjectLevel(parentProject) + 1; + + PledgeAdmin storage parentA = _findAdmin(a.parentProject); + return _getProjectLevel(parentA) + 1; } + function _grantPledgeAdminPermission(address _who, uint64 idPledge) internal { + bytes32 id; + assembly { id := idPledge } -////////////////////////////////////////////////////// -// Getters for individual attributes of a PledgeAdmin -////////////////////////////////////////////////////// + uint[] memory params = new uint[](1); + params[0] = uint(bytes32(1 << 8 * 30) | id); - function getAdminType( - uint idAdmin - ) internal view returns (PledgeAdminType) - { - return PledgeAdminType(_storage.stgObjectGetUInt(PLEDGE_ADMIN, idAdmin, "adminType")); + ACL(kernel.acl()).grantPermissionP(_who, address(this), PLEDGE_ADMIN_ROLE, params); } - - function getAdminAddr( - uint idAdmin - ) internal view returns (address) - { - return _storage.stgObjectGetAddress(PLEDGE_ADMIN, idAdmin, "addr"); - } - - function getAdminName( - uint idAdmin - ) internal view returns (string) - { - return _storage.stgObjectGetString(PLEDGE_ADMIN, idAdmin, "name"); - } - - function getAdminParentProject( - uint idAdmin - ) internal view returns (uint) - { - return _storage.stgObjectGetUInt(PLEDGE_ADMIN, idAdmin, "parentProject"); - } - - function getAdminCanceled( - uint idAdmin - ) internal view returns (bool) - { - return _storage.stgObjectGetBoolean(PLEDGE_ADMIN, idAdmin, "canceled"); - } - - function getAdminPlugin( - uint idAdmin - ) internal view returns (address) - { - return _storage.stgObjectGetAddress(PLEDGE_ADMIN, idAdmin, "plugin"); - } - - function getAdminCommitTime( - uint idAdmin - ) internal view returns (uint) - { - return _storage.stgObjectGetUInt(PLEDGE_ADMIN, idAdmin, "commitTime"); - } -} +} \ No newline at end of file diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index e77d8a0..a94cc04 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -19,11 +19,9 @@ pragma solidity ^0.4.18; along with this program. If not, see . */ -import "./EternallyPersistentLib.sol"; -import "./LiquidPledgingStorage.sol"; +import "@aragon/os/contracts/apps/AragonApp.sol"; -contract Pledges is LiquidPledgingStorage { - using EternallyPersistentLib for EternalStorage; +contract Pledges is AragonApp { // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 10; @@ -31,14 +29,10 @@ contract Pledges is LiquidPledgingStorage { // a constant for when a delegate is requested that is not in the system uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - // Constants used when dealing with storage/retrieval of Pledges - string constant PLEDGE = "Pledge"; - bytes32 constant PLEDGES_ARRAY = keccak256("pledges"); - enum PledgeState { Pledged, Paying, Paid } struct Pledge { - uint id; // the id of this Pledge + // uint id; // the id of this Pledge uint amount; uint64 owner; // PledgeAdmin uint64[] delegationChain; // List of delegates in order of authority @@ -48,13 +42,17 @@ contract Pledges is LiquidPledgingStorage { PledgeState pledgeState; // Pledged, Paying, Paid } + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + /////////////// // Constructor /////////////// - function Pledges(address _storage) - LiquidPledgingStorage(_storage) public - { + function Pledges() public { + pledges.length = 1; // we reserve the 0 pledge } @@ -65,7 +63,7 @@ contract Pledges is LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system function numberOfPledges() public view returns (uint) { - return _storage.stgCollectionLength(PLEDGES_ARRAY); + return pledges.length - 1; } /// @notice A getter that returns the details of the specified pledge @@ -82,10 +80,10 @@ contract Pledges is LiquidPledgingStorage { uint64 oldPledge, PledgeState pledgeState ) { - Pledge memory p = findPledge(idPledge); + Pledge memory p = _findPledge(idPledge); amount = p.amount; owner = p.owner; - nDelegates = uint64(getPledgeDelegateCount(idPledge)); + nDelegates = uint64(p.delegationChain.length); intendedProject = p.intendedProject; commitTime = p.commitTime; oldPledge = p.oldPledge; @@ -113,89 +111,42 @@ contract Pledges is LiquidPledgingStorage { /// will revert back to it's previous state /// @param state The pledge state: Pledged, Paying, or state /// @return The hPledge2idx index number - function findOrCreatePledge( + function _findOrCreatePledge( uint64 owner, uint64[] delegationChain, uint64 intendedProject, uint64 commitTime, uint64 oldPledge, PledgeState state - ) internal returns (Pledge) + ) internal returns (uint64) { bytes32 hPledge = keccak256(owner, delegationChain, intendedProject, commitTime, oldPledge, state); - uint id = _storage.getUIntValue(hPledge); + uint64 id = hPledge2idx[hPledge]; if (id > 0) { - return Pledge( - id, - getPledgeAmount(id), //TODO don't fetch this here b/c it may not be needed? + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, owner, delegationChain, intendedProject, commitTime, oldPledge, - state); - } - - id = _storage.stgCollectionAddItem(PLEDGES_ARRAY); - _storage.setUIntValue(hPledge, id); - - _storage.stgObjectSetUInt(PLEDGE, id, "owner", owner); - if (intendedProject > 0) { - _storage.stgObjectSetUInt(PLEDGE, id, "intendedProject", intendedProject); - } - if (commitTime > 0) { - _storage.stgObjectSetUInt(PLEDGE, id, "commitTime", commitTime); - } - if (oldPledge > 0) { - _storage.stgObjectSetUInt(PLEDGE, id, "oldPledge", oldPledge); - } - if (state != PledgeState.Pledged) { - _storage.stgObjectSetUInt(PLEDGE, id, "state", uint(state)); - } - - if (delegationChain.length > 0) { - _storage.setUIntValue(keccak256("delegationChain", id, "length"), delegationChain.length); - - // TODO pack these? possibly add array method to EternalStorage in anticipation of the new solidity abi encoder - for (uint i = 0; i < delegationChain.length; i++) { - _storage.setUIntValue(keccak256("delegationChain", id, i), delegationChain[i]); - } - } - - return Pledge( - id, - 0, - owner, - delegationChain, - intendedProject, - commitTime, - oldPledge, - state); + state + ) + ); + return id; } /// @param idPledge the id of the pledge to load from storage /// @return The Pledge - function findPledge(uint idPledge) internal view returns(Pledge) { - require(idPledge <= numberOfPledges()); - - uint amount = getPledgeAmount(idPledge); - uint owner = getPledgeOwner(idPledge); - uint intendedProject = getPledgeIntendedProject(idPledge); - uint commitTime = getPledgeCommitTime(idPledge); - uint oldPledge = getPledgeOldPledge(idPledge); - PledgeState state = getPledgeState(idPledge); - uint64[] memory delegates = getPledgeDelegates(idPledge); - - return Pledge( - idPledge, - amount, - uint64(owner), - delegates, - uint64(intendedProject), - uint64(commitTime), - uint64(oldPledge), - state - ); + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; } /// @notice A getter that searches the delegationChain for the level of @@ -206,7 +157,7 @@ contract Pledges is LiquidPledgingStorage { /// `admins` array index `idDelegate` this returns that delegates /// corresponding index in the delegationChain. Otherwise it returns /// the NOTFOUND constant - function getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { for (uint i = 0; i < p.delegationChain.length; i++) { if (p.delegationChain[i] == idDelegate) { return uint64(i); @@ -217,64 +168,13 @@ contract Pledges is LiquidPledgingStorage { /// @notice A getter to find how many old "parent" pledges a specific Pledge /// had using a self-referential loop - /// @param idOldPledge The Pledge being queried + /// @param p The Pledge being queried /// @return The number of old "parent" pledges a specific Pledge had - function getPledgeLevel(uint idOldPledge) internal view returns(uint) { - if (idOldPledge == 0) { + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { return 0; } - idOldPledge = _storage.stgObjectGetUInt(PLEDGE, idOldPledge, "oldPledge"); - return getPledgeLevel(idOldPledge) + 1; // a loop lookup - } - - -////////////////////////////////////////////////////// -// Getters for individual attributes of a PledgeAdmin -////////////////////////////////////////////////////// - - function getPledgeOwner(uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(PLEDGE, idPledge, "owner"); - } - - function getPledgeDelegate(uint idPledge, uint index) internal view returns(uint) { - return _storage.getUIntValue(keccak256("delegationChain", idPledge, index)); - } - - function getPledgeOldPledge(uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(PLEDGE, idPledge, "oldPledge"); - } - - function getPledgeAmount(uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(PLEDGE, idPledge, "amount"); - } - - function getPledgeIntendedProject(uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(PLEDGE, idPledge, "intendedProject"); - } - - function getPledgeCommitTime(uint idPledge) internal view returns(uint) { - return _storage.stgObjectGetUInt(PLEDGE, idPledge, "commitTime"); - } - - function getPledgeState(uint idPledge) internal view returns(PledgeState) { - return PledgeState(_storage.stgObjectGetUInt(PLEDGE, idPledge, "state")); - } - - function getPledgeDelegates(uint idPledge) internal view returns(uint64[]) { - //TODO pack/unpack chain - uint length = getPledgeDelegateCount(idPledge); - uint64[] memory delegates = new uint64[](length); - for (uint i = 0; i < length; i++) { - delegates[i] = uint64(getPledgeDelegate(idPledge, i)); - } - return delegates; - } - - function getPledgeDelegateCount(uint idPledge) internal view returns(uint) { - return _storage.getUIntValue(keccak256("delegationChain", idPledge, "length")); - } - - function setPledgeAmount(uint idPledge, uint amount) internal { - _storage.stgObjectSetUInt(PLEDGE, idPledge, "amount", amount); + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup } } diff --git a/package.json b/package.json index 6fa651c..419ebe7 100644 --- a/package.json +++ b/package.json @@ -42,13 +42,14 @@ "eslint-plugin-react": "^7.1.0", "ganache-cli": "^7.0.0-beta.0", "lerna": "^2.2.0", - "random-bytes": "^1.0.0", "mocha": "^3.5.0", - "solcpiler": "0.0.10", + "random-bytes": "^1.0.0", + "solcpiler": "^0.0.15", "web3": "1.0.0-beta.24" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", "dependencies": { + "@aragon/os": "3.0.1", "async": "^2.4.0", "chai": "^4.1.0", "eth-contract-class": "0.0.6", diff --git a/test/NormalOperation.js b/test/NormalOperation.js index a76aca7..af1f484 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -3,15 +3,12 @@ const TestRPC = require('ganache-cli'); const Web3 = require('web3'); const chai = require('chai'); -const liquidpledging = require('../index.js'); -const EternalStorage = require('../js/eternalStorage'); const assertFail = require('./helpers/assertFail'); +const contracts = require("../build/contracts.js"); const { utils } = Web3; -const LiquidPledging = liquidpledging.LiquidPledgingMock; -const LPVault = liquidpledging.LPVault; -const LiquidPledgingState = liquidpledging.LiquidPledgingState; +const LiquidPledgingState = require('../index').LiquidPledgingState; const assert = chai.assert; @@ -36,6 +33,7 @@ describe('LiquidPledging test', function () { let adminProject2a; let adminProject3; let delegate2; + let escapeHatchDestination; before(async () => { testrpc = TestRPC.server({ ws: true, @@ -55,6 +53,7 @@ describe('LiquidPledging test', function () { delegate2 = accounts[6]; giver2 = accounts[7]; adminProject3 = accounts[8]; + escapeHatchDestination = accounts[9]; }); after((done) => { @@ -63,13 +62,21 @@ describe('LiquidPledging test', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await LPVault.new(web3, accounts[0], accounts[1]); - const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + const baseVault = await contracts.LPVault.new(web3); + const baseLP = await contracts.LiquidPledgingMock.new(web3); + lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); - liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) + const r = await lpFactory.newLP(accounts[0], escapeHatchDestination); - await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + const vaultAddress = r.events.DeployVault.returnValues.vault; + vault = new contracts.LPVault(web3, vaultAddress); + + const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; + lp = new contracts.LiquidPledgingMock(web3, lpAddress); + + // setup permissions + // const kernel = new contracts.Kernel(web3, await vault.kernel()); + // const acl = new contracts.ACL(web3, await kernel.acl()); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); From ece3355c67432cf4e6a4282bbbadcca8942484ca Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 12 Feb 2018 23:55:11 +0100 Subject: [PATCH 25/52] all tests passing --- contracts/EscapableApp.sol | 4 +- contracts/LPVault.sol | 16 +++---- contracts/LiquidPledging.sol | 33 ++++++------- contracts/LiquidPledgingBase.sol | 17 +++---- contracts/LiquidPledgingMock.sol | 5 +- contracts/PledgeAdmins.sol | 12 +---- contracts/Pledges.sol | 8 ---- js/liquidPledgingState.js | 4 +- test/AdminPlugins.js | 50 +++++++++---------- test/CancelPledge.js | 24 +++++----- test/DelegationChain.js | 82 ++++++++++++++++---------------- test/NormalOperation.js | 64 ++++++++++++++----------- test/NormalizePledge.js | 50 +++++++++---------- test/Vault.js | 53 +++++++++++++++------ 14 files changed, 213 insertions(+), 209 deletions(-) diff --git a/contracts/EscapableApp.sol b/contracts/EscapableApp.sol index ddf2b39..3a22751 100644 --- a/contracts/EscapableApp.sol +++ b/contracts/EscapableApp.sol @@ -29,7 +29,7 @@ import "@aragon/os/contracts/apps/AragonApp.sol"; /// not blacklisted contract EscapableApp is AragonApp { // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = bytes32(1); + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); address public escapeHatchDestination; mapping (address=>bool) private escapeBlacklist; // Token contract addresses @@ -38,7 +38,7 @@ contract EscapableApp is AragonApp { /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit external { + function initialize(address _escapeHatchDestination) onlyInit public { initialized(); require(_escapeHatchDestination != 0x0); diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index 76fc2e6..ba9bfbd 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -40,10 +40,10 @@ contract ILiquidPledging { /// contract that holds funds for the liquid pledging system. contract LPVault is EscapableApp { - bytes32 constant public CONFIRM_PAYMENT_ROLE = bytes32(1); - bytes32 constant public CANCEL_PAYMENT_ROLE = bytes32(2); - bytes32 constant public AUTHORIZE_PAYMENT_ROLE = bytes32(3); - bytes32 constant public SET_AUTOPAY_ROLE = bytes32(4); + bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); + bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); + bytes32 constant public AUTHORIZE_PAYMENT_ROLE = keccak256("AUTHORIZE_PAYMENT_ROLE"); + bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); event AutoPaySet(bool autoPay); event EscapeFundsCalled(address token, uint amount); @@ -85,7 +85,7 @@ contract LPVault is EscapableApp { _; } - function initialize(address _escapeHatchDestination) onlyInit external { + function initialize(address _escapeHatchDestination) onlyInit public { require(false); // overload the EscapableApp } @@ -95,11 +95,9 @@ contract LPVault is EscapableApp { /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { - initialized(); - require(_escapeHatchDestination != 0x0); - require(_liquidPledging != 0x0); + super.initialize(_escapeHatchDestination); - escapeHatchDestination = _escapeHatchDestination; + require(_liquidPledging != 0x0); liquidPledging = ILiquidPledging(_liquidPledging); } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 31c27d5..c332fd8 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -28,19 +28,6 @@ import "./LiquidPledgingBase.sol"; contract LiquidPledging is LiquidPledgingBase { -////// -// Constructor -////// - - /// @notice Basic constructor for LiquidPleding, also calls the - /// LiquidPledgingBase contract - /// @dev This constructor also calls the constructor - /// for `LiquidPledgingBase` - function LiquidPledging() - LiquidPledgingBase() public - { - } - /// @notice This is how value enters the system and how pledges are created; /// the ether is sent to the vault, an pledge for the Giver is created (or /// found), the amount of ETH donated in wei is added to the `amount` in @@ -49,7 +36,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idGiver The id of the Giver donating; if 0, a new id is created /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver) authP(PLEDGE_ADMIN_ROLE, arr(uint(idGiver))) + function donate(uint64 idGiver, uint64 idReceiver) public payable { // TODO: maybe need a separate role here to allow giver creation @@ -59,12 +46,15 @@ contract LiquidPledging is LiquidPledgingBase { } PledgeAdmins.PledgeAdmin storage sender = _findAdmin(idGiver); - // _checkAdminOwner(sender); require(sender.adminType == PledgeAdminType.Giver); + require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(idGiver)))); uint amount = msg.value; require(amount > 0); - vault.transfer(amount); // Sends the `msg.value` (in wei) to the `vault` + // Sends the `msg.value` (in wei) to the `vault` + // b/c the vault is a proxy, send & transfer will fail since they only provide 2300 + // gas, and the delegateProxy will sub(gas, 10000) before even making the call + require(vault.call.value(amount).gas(16000)()); uint64 idPledge = _findOrCreatePledge( idGiver, @@ -223,14 +213,14 @@ contract LiquidPledging is LiquidPledgingBase { /// intendedProject /// @param idPledge Id of the pledge that is to be redeemed into ether /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) authP(PLEDGE_ADMIN_ROLE, arr(uint(idPledge), amount)) public { + function withdraw(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); // Updates pledge info Pledges.Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); PledgeAdmins.PledgeAdmin storage owner = _findAdmin(p.owner); - // _checkAdminOwner(owner); + require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(p.owner)))); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -307,12 +297,13 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that is to be canceled /// @param amount Quantity of ether (in wei) to be transfered to the /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) authP(PLEDGE_ADMIN_ROLE, arr(uint(idPledge))) public { + function cancelPledge(uint64 idPledge, uint amount) public {//authP(PLEDGE_ADMIN_ROLE, arr(uint(idPledge))) public { idPledge = normalizePledge(idPledge); Pledges.Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); + require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(p.owner)))); // PledgeAdmins.PledgeAdmin storage a = _findAdmin(p.owner); // _checkAdminOwner(a); @@ -811,6 +802,10 @@ contract LiquidPledging is LiquidPledgingBase { return now; } + function getTime() public view returns(uint) { + return _getTime(); + } + // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index bc14bec..c1cea00 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -56,13 +56,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { // Constructor /////////////// - function LiquidPledgingBase() - PledgeAdmins() - Pledges() public - { - } - - function initialize(address _escapeHatchDestination) onlyInit external { + function initialize(address _escapeHatchDestination) onlyInit public { require(false); // overload the EscapableApp } @@ -71,13 +65,14 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit external { - initialized(); - require(_escapeHatchDestination != 0x0); + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); require(_vault != 0x0); - escapeHatchDestination = _escapeHatchDestination; vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge } diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index 0fbed3a..5052179 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -28,13 +28,14 @@ contract LiquidPledgingMock is LiquidPledging { /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` /// instance and sets the mocked time to the current blocktime. - function LiquidPledgingMock() LiquidPledging() public { + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_vault, _escapeHatchDestination); mock_time = now; } /// @dev `getTime` is a basic getter function for /// the mock_time parameter - function getTime() internal view returns (uint) { + function _getTime() internal view returns (uint) { return mock_time; } diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 1115fda..86ee7f0 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -61,16 +61,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - -/////////////// -// Constructor -/////////////// - - function PledgeAdmins() - LiquidPledgingPlugins() public - { - } - //////////////////// // Public functions //////////////////// @@ -258,7 +248,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { plugin) ); - _grantPledgeAdminPermission(msg.sender, idProject); + _grantPledgeAdminPermission(projectAdmin, idProject); if (address(plugin) != 0) { _grantPledgeAdminPermission(address(plugin), idProject); } diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index a94cc04..fcf727d 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -47,14 +47,6 @@ contract Pledges is AragonApp { /// index number by the hash of that pledge mapping (bytes32 => uint64) hPledge2idx; -/////////////// -// Constructor -/////////////// - - function Pledges() public { - pledges.length = 1; // we reserve the 0 pledge - } - ///////////////////////////// // Public constant functions diff --git a/js/liquidPledgingState.js b/js/liquidPledgingState.js index 1dea022..63c7a1e 100644 --- a/js/liquidPledgingState.js +++ b/js/liquidPledgingState.js @@ -31,9 +31,9 @@ class LiquidPledgingState { } const promises = []; - for (let i = 0; i < res.nDelegates; i += 1) { + for (let i = 1; i <= res.nDelegates; i += 1) { promises.push( - this.$lp.getDelegate(idPledge, i) + this.$lp.getPledgeDelegate(idPledge, i) .then(r => ({ id: r.idDelegate, addr: r.addr, diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index f814729..14f6712 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -3,17 +3,13 @@ const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); -const liquidpledging = require('../index.js'); -const EternalStorage = require('../js/eternalStorage'); -const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); +const contracts = require("../build/contracts.js"); +const LiquidPledgingState = require('../index').LiquidPledgingState; -const LiquidPledging = liquidpledging.LiquidPledgingMock; -const LiquidPledgingState = liquidpledging.LiquidPledgingState; const simpleProjectPluginFactoryAbi = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginFactoryAbi; const simpleProjectPluginFactoryByteCode = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginFactoryByteCode; const simpleProjectPluginRuntimeByteCode = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginRuntimeByteCode; -const LPVault = liquidpledging.LPVault; const assert = chai.assert; const printState = async (liquidPledgingState) => { @@ -45,9 +41,9 @@ describe('LiquidPledging plugins test', function () { web3 = new Web3('ws://localhost:8546'); accounts = await web3.eth.getAccounts(); - giver1 = accounts[ 1 ]; - adminProject1 = accounts[ 2 ]; - adminDelegate1 = accounts[ 3 ]; + giver1 = accounts[1]; + adminProject1 = accounts[2]; + adminDelegate1 = accounts[3]; }); after((done) => { @@ -55,47 +51,51 @@ describe('LiquidPledging plugins test', function () { done(); }); - it('Should deploy LiquidPledging contract', async function() { - vault = await LPVault.new(web3, accounts[0], accounts[1]); - const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + it('Should deploy LiquidPledging contract', async function () { + const baseVault = await contracts.LPVault.new(web3); + const baseLP = await contracts.LiquidPledgingMock.new(web3); + lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); - liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) + const r = await lpFactory.newLP(accounts[0], accounts[0]); - await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + const vaultAddress = r.events.DeployVault.returnValues.vault; + vault = new contracts.LPVault(web3, vaultAddress); + + const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; + liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); - it('Should create create giver with no plugin', async function() { + it('Should create create giver with no plugin', async function () { await liquidPledging.addGiver('Giver1', '', 0, '0x0', { from: adminProject1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 1); }); - it('Should fail to create giver with invalid plugin', async function() { + it('Should fail to create giver with invalid plugin', async function () { await assertFail( liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1, gas: 4000000 }) ); }); - it('Should fail to create delegate with invalid plugin', async function() { + it('Should fail to create delegate with invalid plugin', async function () { await assertFail( - liquidPledging.addDelegate('delegate1', '', 0, liquidPledging.$address, { from: adminDelegate1, gas: 4000000}) + liquidPledging.addDelegate('delegate1', '', 0, liquidPledging.$address, { from: adminDelegate1, gas: 4000000 }) ); }); - it('Should fail to create project with invalid plugin', async function() { + it('Should fail to create project with invalid plugin', async function () { await assertFail( - liquidPledging.addProject('Project1', '', giver1, 0, 0, vault.$address, { from: adminProject1, gas: 4000000}) + liquidPledging.addProject('Project1', '', giver1, 0, 0, vault.$address, { from: adminProject1, gas: 4000000 }) ); }); - it('Should deploy TestSimpleProjectPlugin and add project', async function() { + it('Should deploy TestSimpleProjectPlugin and add project', async function () { // add plugin as valid plugin const codeHash = web3.utils.soliditySha3(simpleProjectPluginRuntimeByteCode); - await liquidPledging.addValidPlugin(codeHash); + await liquidPledging.addValidPlugin(codeHash, { $extraGas: 200000 }); // deploy new plugin const factoryContract = await new web3.eth.Contract(simpleProjectPluginFactoryAbi) @@ -113,8 +113,8 @@ describe('LiquidPledging plugins test', function () { assert.equal(nAdmins, 2); }); - it('Should allow all plugins', async function() { - await liquidPledging.useWhitelist(false); + it('Should allow all plugins', async function () { + await liquidPledging.useWhitelist(false, { $extraGas: 200000 }); await liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1 }); diff --git a/test/CancelPledge.js b/test/CancelPledge.js index 8dcd44c..b38f680 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -3,14 +3,10 @@ const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); -const liquidpledging = require('../index.js'); -const EternalStorage = require('../js/eternalStorage'); -const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); +const contracts = require("../build/contracts.js"); +const LiquidPledgingState = require('../index').LiquidPledgingState; -const LiquidPledging = liquidpledging.LiquidPledgingMock; -const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const LPVault = liquidpledging.LPVault; const assert = chai.assert; const printState = async (liquidPledgingState) => { @@ -53,13 +49,17 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await LPVault.new(web3, accounts[0], accounts[1]); - const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + const baseVault = await contracts.LPVault.new(web3); + const baseLP = await contracts.LiquidPledgingMock.new(web3); + lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); - liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) + const r = await lpFactory.newLP(accounts[0], accounts[0]); - await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + const vaultAddress = r.events.DeployVault.returnValues.vault; + vault = new contracts.LPVault(web3, vaultAddress); + + const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; + liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); @@ -79,7 +79,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should cancel pledge and return to oldPledge', async () => { - await liquidPledging.cancelPledge(2, 1000, { from: adminProject1 }); + await liquidPledging.cancelPledge(2, 1000, { from: adminProject1, $extraGas: 200000 }); const st = await liquidPledgingState.getState(); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 9f9322c..4610668 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -3,13 +3,9 @@ const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); -const liquidpledging = require('../index.js'); -const EternalStorage = require('../js/eternalStorage'); -const PledgeAdmins = require('../js/pledgeAdmins'); +const contracts = require("../build/contracts.js"); +const LiquidPledgingState = require('../index').LiquidPledgingState; -const LiquidPledging = liquidpledging.LiquidPledgingMock; -const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const LPVault = liquidpledging.LPVault; const assertFail = require('./helpers/assertFail'); const assert = chai.assert; @@ -20,7 +16,7 @@ const printState = async (liquidPledgingState) => { describe('DelegationChain test', function () { this.timeout(0); - + let testrpc; let web3; let accounts; @@ -38,7 +34,8 @@ describe('DelegationChain test', function () { before(async () => { testrpc = TestRPC.server({ ws: true, - gasLimit: 6700000, total_accounts: 10, + gasLimit: 6700000, + total_accounts: 10, }); testrpc.listen(8545, '127.0.0.1'); @@ -55,18 +52,21 @@ describe('DelegationChain test', function () { after((done) => { testrpc.close(); - // console.log(gasUsage); done(); }); it('Should deploy LiquidPledging contract', async () => { - vault = await LPVault.new(web3, accounts[0], accounts[1]); - const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + const baseVault = await contracts.LPVault.new(web3); + const baseLP = await contracts.LiquidPledgingMock.new(web3); + lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); - liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) + const r = await lpFactory.newLP(accounts[0], accounts[0]); - await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + const vaultAddress = r.events.DeployVault.returnValues.vault; + vault = new contracts.LPVault(web3, vaultAddress); + + const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; + liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); @@ -84,11 +84,11 @@ describe('DelegationChain test', function () { }); it('Should allow previous delegate to transfer pledge', async () => { - await liquidPledging.donate(1, 2, {from: giver1, value: 1000}); + await liquidPledging.donate(1, 2, { from: giver1, value: 1000 }); // add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); + await liquidPledging.transfer(2, 2, 1000, 3, { from: delegate1 }); // delegate 1 transfer pledge back to self, thus undelegating delegate2 - await liquidPledging.transfer(2, 3, 1000, 2, {from: delegate1}); + await liquidPledging.transfer(2, 3, 1000, 2, { from: delegate1, $extraGas: 200000 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[2].amount, 1000); @@ -97,11 +97,11 @@ describe('DelegationChain test', function () { it('Should allow any delegate in chain to transfer pledge and undelegate all delegates occurring later in chain', async () => { // add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); + await liquidPledging.transfer(2, 2, 1000, 3, { from: delegate1, $extraGas: 200000 }); // add delegate3 to chain - await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2}); + await liquidPledging.transfer(3, 3, 1000, 4, { from: delegate2, $extraGas: 200000 }); // delegate 1 transfer pledge to project1. should also undelegate all delegates occurring later in chain - await liquidPledging.transfer(2, 4, 1000, 5, {from: delegate1}); + await liquidPledging.transfer(2, 4, 1000, 5, { from: delegate1, $extraGas: 200000 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[5].amount, 1000); @@ -113,15 +113,15 @@ describe('DelegationChain test', function () { }); it('Should throw if delegate2 is not in delegationChain', async () => { - await assertFail(liquidPledging.transfer(3, 5, 1000, 1, {from: delegate2, gas: 4000000})); + await assertFail(liquidPledging.transfer(3, 5, 1000, 1, { from: delegate2, gas: 4000000 })); }); it('Delegate1 should not be able to transfer to another giver', async () => { - await assertFail(liquidPledging.transfer(2, 5, 1000, 6, {from: delegate1, gas: 4000000})); + await assertFail(liquidPledging.transfer(2, 5, 1000, 6, { from: delegate1, gas: 4000000 })); }); it('Delegate1 should be able to transfer pledge back to owner', async () => { - await liquidPledging.transfer(2, 5, 1000, 1, {from: delegate1}); + await liquidPledging.transfer(2, 5, 1000, 1, { from: delegate1, $extraGas: 200000 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[1].amount, 1000); assert.equal(st.pledges[1].delegates.length, 0); @@ -130,11 +130,11 @@ describe('DelegationChain test', function () { it('Delegate1 should be able to change delegation', async () => { // add delegate1 to chain - await liquidPledging.transfer(1, 1, 1000, 2, {from: giver1}); + await liquidPledging.transfer(1, 1, 1000, 2, { from: giver1, $extraGas: 200000 }); // delegate1 add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); + await liquidPledging.transfer(2, 2, 1000, 3, { from: delegate1, $extraGas: 200000 }); // delegate1 remove delegate2 and add delegate3 to chain - await liquidPledging.transfer(2, 3, 1000, 4, {from: delegate1}); + await liquidPledging.transfer(2, 3, 1000, 4, { from: delegate1, $extraGas: 200000 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[1].amount, 0); @@ -146,9 +146,9 @@ describe('DelegationChain test', function () { it('delegate in chain should be able to delegate to previous delegate, thus undelegating themselves and any delegate after the previous delegate', async () => { // add delegate2 to chain - await liquidPledging.transfer(4, 6, 1000, 3, {from: delegate3}); + await liquidPledging.transfer(4, 6, 1000, 3, { from: delegate3 }); // delegate2 transfer back to delegate1, thus undelegating delegate2 & delegate3 - await liquidPledging.transfer(3, 7, 1000, 2, {from: delegate2}); + await liquidPledging.transfer(3, 7, 1000, 2, { from: delegate2, $extraGas: 200000 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges[7].amount, 0); @@ -159,13 +159,13 @@ describe('DelegationChain test', function () { it('Should not append delegate on veto delegation', async () => { // propose the delegation - await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1 }); + await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1, $extraGas: 200000 }); const origPledge = await liquidPledging.getPledge(2); assert.equal(origPledge.amount, '0'); // veto the delegation - await liquidPledging.transfer(1, 5, 1000, 2, { from: giver1 }); + await liquidPledging.transfer(1, 5, 1000, 2, { from: giver1, $extraGas: 200000 }); const currentPledge = await liquidPledging.getPledge(2); @@ -175,11 +175,11 @@ describe('DelegationChain test', function () { it('Pledge should have longest commitTime in delegation chain', async () => { // delegate1 add delegate2 to chain - await liquidPledging.transfer(2, 2, 1000, 3, {from: delegate1}); + await liquidPledging.transfer(2, 2, 1000, 3, { from: delegate1, $extraGas: 200000 }); // set the time const now = Math.floor(new Date().getTime() / 1000); - await liquidPledging.setMockedTime(now); + await liquidPledging.setMockedTime(now, { $extraGas: 200000 }); // propose project delegation await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2 }); @@ -190,21 +190,21 @@ describe('DelegationChain test', function () { it('delegation chain should remain the same when owner veto\'s delegation', async () => { // owner veto delegation to project1 - await liquidPledging.transfer(1, 8, 1000, 3, { from: giver1 }); + await liquidPledging.transfer(1, 8, 1000, 3, { from: giver1, $extraGas: 200000 }); const st = await liquidPledgingState.getState(); - assert.equal(st.pledges[ 8 ].amount, 0); - assert.equal(st.pledges[ 3 ].amount, 1000); - assert.equal(st.pledges[ 3 ].delegates.length, 2); - assert.equal(st.pledges[ 3 ].delegates[ 0 ].id, 2); - assert.equal(st.pledges[ 3 ].delegates[ 1 ].id, 3); + assert.equal(st.pledges[8].amount, 0); + assert.equal(st.pledges[3].amount, 1000); + assert.equal(st.pledges[3].delegates.length, 2); + assert.equal(st.pledges[3].delegates[0].id, 2); + assert.equal(st.pledges[3].delegates[1].id, 3); }); it('delegation chain should remain the same upto delegate of reciever when owner veto\'s delegation', async () => { // propose project1 delegation - await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2 }); + await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 200000 }); // owner veto delegation to project1 and remove delegate2 - await liquidPledging.transfer(1, 8, 1000, 2, { from: giver1 }); + await liquidPledging.transfer(1, 8, 1000, 2, { from: giver1, $extraGas: 200000 }); const pledge = await liquidPledging.getPledge(2); assert.equal(pledge.amount, 1000); @@ -214,7 +214,7 @@ describe('DelegationChain test', function () { // propose project1 delegation await liquidPledging.transfer(2, 2, 1000, 5, { from: delegate1 }); // owner veto delegation to project1 and assign new delgate - await liquidPledging.transfer(1, 9, 1000, 3, { from: giver1 }); + await liquidPledging.transfer(1, 9, 1000, 3, { from: giver1, $extraGas: 200000 }); const pledge = await liquidPledging.getPledge(10); assert.equal(pledge.amount, 1000); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index af1f484..c7e12b8 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -34,11 +34,14 @@ describe('LiquidPledging test', function () { let adminProject3; let delegate2; let escapeHatchDestination; + let escapeHatchCaller; + let acl; + before(async () => { testrpc = TestRPC.server({ ws: true, gasLimit: 6700000, - total_accounts: 10, + total_accounts: 11, }); testrpc.listen(8545, '127.0.0.1'); @@ -54,6 +57,7 @@ describe('LiquidPledging test', function () { giver2 = accounts[7]; adminProject3 = accounts[8]; escapeHatchDestination = accounts[9]; + escapeHatchCaller = accounts[10]; }); after((done) => { @@ -72,16 +76,20 @@ describe('LiquidPledging test', function () { vault = new contracts.LPVault(web3, vaultAddress); const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; - lp = new contracts.LiquidPledgingMock(web3, lpAddress); - - // setup permissions - // const kernel = new contracts.Kernel(web3, await vault.kernel()); - // const acl = new contracts.ACL(web3, await kernel.acl()); + liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); + + // set permissions + const kernel = new contracts.Kernel(web3, await liquidPledging.kernel()); + acl = new contracts.ACL(web3, await kernel.acl()); + await acl.createPermission(accounts[0], vault.$address, await vault.CANCEL_PAYMENT_ROLE(), accounts[0], {$extraGas: 200000}); + await acl.createPermission(accounts[0], vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), accounts[0], {$extraGas: 200000}); + await acl.grantPermission(escapeHatchCaller, vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); + await acl.revokePermission(accounts[0], vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); }); it('Should create a giver', async () => { - await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); + await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1, gas: 1000000 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 1); const res = await liquidPledging.getPledgeAdmin(1); @@ -92,10 +100,12 @@ describe('LiquidPledging test', function () { assert.equal(res[4], 86400); }); it('Should make a donation', async () => { - await liquidPledging.donate(1, 1, { from: giver1, value: utils.toWei('1') }); + const r = await liquidPledging.donate(1, 1, { from: giver1, value: utils.toWei('1'), gas: 1000000 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 1); - await liquidPledging.getPledge(1); + const p = await liquidPledging.getPledge(1); + assert.equal(p.amount, utils.toWei('1')); + assert.equal(p.owner, 1); }); it('Should create a delegate', async () => { await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); @@ -109,7 +119,7 @@ describe('LiquidPledging test', function () { assert.equal(res[4], 0); }); it('Giver should delegate on the delegate', async () => { - await liquidPledging.transfer(1, 1, utils.toWei('0.5'), 2, { from: giver1 }); + await liquidPledging.transfer(1, 1, utils.toWei('0.5'), 2, { from: giver1, $extraGas: 100000 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 2); const res1 = await liquidPledging.getPledge(1); @@ -118,7 +128,7 @@ describe('LiquidPledging test', function () { assert.equal(res2[0], utils.toWei('0.5')); assert.equal(res2[1], 1); // One delegate - const d = await liquidPledging.getDelegate(2, 0); + const d = await liquidPledging.getPledgeDelegate(2, 1); assert.equal(d[0], 2); assert.equal(d[1], delegate1); assert.equal(d[2], 'Delegate1'); @@ -180,7 +190,7 @@ describe('LiquidPledging test', function () { }); it('After the time, the project1 should be able to spend part of it', async () => { const n = Math.floor(new Date().getTime() / 1000); - await liquidPledging.setMockedTime(n + 86401); + await liquidPledging.setMockedTime(n + 86401, {$extraGas: 100000}); await liquidPledging.withdraw(3, utils.toWei('0.05'), { from: adminProject1 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 6); @@ -204,7 +214,7 @@ describe('LiquidPledging test', function () { it('Should collect the Ether', async () => { const initialBalance = await web3.eth.getBalance(adminProject1); - await vault.confirmPayment(0); + await vault.confirmPayment(0, {$extraGas: 200000}); const finalBalance = await web3.eth.getBalance(adminProject1); const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); @@ -223,7 +233,7 @@ describe('LiquidPledging test', function () { assert.equal(res7[6], 2); // Peinding paid Paid }); it('Admin of the project1 should be able to cancel project1', async () => { - await liquidPledging.cancelProject(3, { from: adminProject1 }); + await liquidPledging.cancelProject(3, { from: adminProject1, $extraGas: 100000 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.admins[3].canceled, true); }); @@ -236,7 +246,7 @@ describe('LiquidPledging test', function () { ); }); it('Delegate should send part of this ETH to project2', async () => { - await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, {from: delegate1}); + await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, {from: delegate1, $extraGas: 100000}); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[8].amount), 0.03); @@ -246,7 +256,7 @@ describe('LiquidPledging test', function () { assert.equal(st.pledges[8].intendedProject, 4); }); it('Giver should be able to send the remaining to project2', async () => { - await liquidPledging.transfer(1, 5, utils.toWei('0.02'), 4, { from: giver1 }); + await liquidPledging.transfer(1, 5, utils.toWei('0.02'), 4, { from: giver1, $extraGas: 100000 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[5].amount), 0); @@ -259,14 +269,14 @@ describe('LiquidPledging test', function () { assert.equal(nAdmins, 6); }); it('Project 2 delegate in delegate2', async () => { - await liquidPledging.transfer(4, 4, utils.toWei('0.02'), 6, { from: adminProject2 }); - const st = await liquidPledgingState.getState(liquidPledging); + await liquidPledging.transfer(4, 4, utils.toWei('0.02'), 6, { from: adminProject2, $extraGas: 200000 }); + const st = await liquidPledgingState.getState(); assert.equal(st.pledges.length, 10); assert.equal(utils.fromWei(st.pledges[9].amount), 0.02); assert.equal(utils.fromWei(st.pledges[4].amount), 0.1); }); it('delegate2 assigns to projec2a', async () => { - await liquidPledging.transfer(6, 9, utils.toWei('0.01'), 5, { from: delegate2 }); + await liquidPledging.transfer(6, 9, utils.toWei('0.01'), 5, { from: delegate2, $extraGas: 100000 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 11); assert.equal(utils.fromWei(st.pledges[9].amount), 0.01); @@ -274,8 +284,8 @@ describe('LiquidPledging test', function () { }); it('project2a authorize to spend a litle', async () => { const n = Math.floor(new Date().getTime() / 1000); - await liquidPledging.setMockedTime(n + (86401 * 3)); - await liquidPledging.withdraw(10, utils.toWei('0.005'), { from: adminProject2a }); + await liquidPledging.setMockedTime(n + (86401 * 3), {$extraGas: 200000}); + await liquidPledging.withdraw(10, utils.toWei('0.005'), { from: adminProject2a, $extraGas: 200000 }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 13); assert.equal(utils.fromWei(st.pledges[10].amount), 0); @@ -283,7 +293,7 @@ describe('LiquidPledging test', function () { assert.equal(utils.fromWei(st.pledges[12].amount), 0.005); }); it('project2 is canceled', async () => { - await liquidPledging.cancelProject(4, { from: adminProject2 }); + await liquidPledging.cancelProject(4, { from: adminProject2, $extraGas: 100000 }); }); it('Should not be able to withdraw it', async () => { await assertFail( @@ -313,10 +323,10 @@ describe('LiquidPledging test', function () { return '0x' + utils.padLeft(utils.toHex(p.amount).substring(2), 48) + utils.padLeft(utils.toHex(p.id).substring(2), 16); }); - await liquidPledging.mWithdraw(encodedPledges, { from: giver1 }); + await liquidPledging.mWithdraw(encodedPledges, { from: giver1, $extraGas: 200000 }); const initialBalance = await web3.eth.getBalance(giver1); - await vault.multiConfirm([2, 3, 4, 5, 6]); + await vault.multiConfirm([2, 3, 4, 5, 6], {$extraGas: 200000}); const finalBalance = await web3.eth.getBalance(giver1); const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); @@ -326,7 +336,7 @@ describe('LiquidPledging test', function () { it('Should make a donation and create giver', async () => { const oldNPledges = await liquidPledging.numberOfPledges(); const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.donate(0, 1, { from: giver2, value: utils.toWei('1') }); + await liquidPledging.donate(0, 1, { from: giver2, value: utils.toWei('1'), $extraGas: 200000 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 1); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -348,10 +358,10 @@ describe('LiquidPledging test', function () { it('should throw if projectLevel > 20', async () => { let nAdmins = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.addProject('ProjectLevel0', '', adminProject1, 0, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('ProjectLevel0', '', adminProject1, 0, 86400, 0, { from: adminProject1, $extraGas: 100000 }); for (let i = 2; i <= 20; i++) { - await liquidPledging.addProject(`ProjectLevel${i}`, '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject(`ProjectLevel${i}`, '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1, $extraGas: 100000 }); } assertFail( diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index afe59c2..6147cfb 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -3,13 +3,9 @@ const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); -const liquidpledging = require('../index.js'); -const EternalStorage = require('../js/eternalStorage'); -const PledgeAdmins = require('../js/pledgeAdmins'); +const contracts = require("../build/contracts.js"); +const LiquidPledgingState = require('../index').LiquidPledgingState; -const LiquidPledging = liquidpledging.LiquidPledgingMock; -const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const LPVault = liquidpledging.LPVault; const assert = chai.assert; const printState = async (liquidPledgingState) => { @@ -19,7 +15,7 @@ const printState = async (liquidPledgingState) => { describe('NormalizePledge test', function () { this.timeout(0); - + let testrpc; let web3; let accounts; @@ -58,13 +54,17 @@ describe('NormalizePledge test', function () { }); it('Should deploy LiquidPledging contract', async () => { - vault = await LPVault.new(web3, accounts[0], accounts[1]); - const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + const baseVault = await contracts.LPVault.new(web3); + const baseLP = await contracts.LiquidPledgingMock.new(web3); + lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); - liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) + const r = await lpFactory.newLP(accounts[0], accounts[0]); - await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address); + const vaultAddress = r.events.DeployVault.returnValues.vault; + vault = new contracts.LPVault(web3, vaultAddress); + + const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; + liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); }); @@ -83,25 +83,25 @@ describe('NormalizePledge test', function () { it('Should commit pledges if commitTime has passed', async () => { // commitTime 259200 - await liquidPledging.donate(1, 2, {from: giver1, value: 1000}); + await liquidPledging.donate(1, 2, { from: giver1, value: 1000 }); // commitTime 86400 - await liquidPledging.donate(1, 3, {from: giver1, value: 1000}); + await liquidPledging.donate(1, 3, { from: giver1, value: 1000 }); // commitTime 0 - await liquidPledging.donate(6, 3, {from: giver2, value: 1000}); + await liquidPledging.donate(6, 3, { from: giver2, value: 1000 }); // set the time const now = Math.floor(new Date().getTime() / 1000); - await liquidPledging.setMockedTime(now); + await liquidPledging.setMockedTime(now, { $extraGas: 200000 }); // delegate to project - await liquidPledging.transfer(2, 2, 1000, 4, {from: delegate1}); - await liquidPledging.transfer(3, 3, 1000, 4, {from: delegate2}); - await liquidPledging.transfer(3, 5, 1000, 4, {from: delegate2}); + await liquidPledging.transfer(2, 2, 1000, 4, { from: delegate1 }); + await liquidPledging.transfer(3, 3, 1000, 4, { from: delegate2 }); + await liquidPledging.transfer(3, 5, 1000, 4, { from: delegate2 }); // advance the time - await liquidPledging.setMockedTime( now + 100000 ); + await liquidPledging.setMockedTime(now + 100000, { $extraGas: 200000 }); - await liquidPledging.mNormalizePledge([6, 7, 8]); + await liquidPledging.mNormalizePledge([6, 7, 8], { $extraGas: 200000 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges.length, 11); @@ -115,13 +115,13 @@ describe('NormalizePledge test', function () { }); it('Should transfer pledge to oldestPledgeNotCanceled', async () => { - await liquidPledging.transfer(4, 10, 1000, 5, {from: adminProject1}); + await liquidPledging.transfer(4, 10, 1000, 5, { from: adminProject1, $extraGas: 200000 }); // cancel projects - await liquidPledging.cancelProject(4, {from: adminProject1}); - await liquidPledging.cancelProject(5, {from: adminProject2}); + await liquidPledging.cancelProject(4, { from: adminProject1, $extraGas: 200000 }); + await liquidPledging.cancelProject(5, { from: adminProject2, $extraGas: 200000 }); - await liquidPledging.mNormalizePledge([9, 11]); + await liquidPledging.mNormalizePledge([9, 11], { $extraGas: 200000 }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges.length, 12); diff --git a/test/Vault.js b/test/Vault.js index dd7e210..ddaad54 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -3,14 +3,10 @@ const TestRPC = require("ganache-cli"); const Web3 = require('web3'); const chai = require('chai'); -const liquidpledging = require('../index.js'); -const EternalStorage = require('../js/eternalStorage'); -const PledgeAdmins = require('../js/pledgeAdmins'); const assertFail = require('./helpers/assertFail'); +const contracts = require("../build/contracts.js"); -const LiquidPledging = liquidpledging.LiquidPledgingMock; -const LiquidPledgingState = liquidpledging.LiquidPledgingState; -const LPVault = liquidpledging.LPVault; +const LiquidPledgingState = require('../index').LiquidPledgingState; const assert = chai.assert; describe('Vault test', function () { @@ -27,6 +23,7 @@ describe('Vault test', function () { let escapeHatchDestination; let giver1; let adminProject1; + let restrictedPaymentsConfirmer; before(async () => { testrpc = TestRPC.server({ @@ -44,6 +41,7 @@ describe('Vault test', function () { vaultOwner = accounts[ 3 ]; escapeHatchDestination = accounts[ 4 ]; escapeHatchCaller = accounts[ 5 ]; + restrictedPaymentsConfirmer = accounts[ 6 ]; }); after((done) => { @@ -52,25 +50,37 @@ describe('Vault test', function () { }); it('Should deploy Vault contract', async function () { - vault = await LPVault.new(web3, escapeHatchCaller, escapeHatchDestination, {from: vaultOwner}); - const storage = await EternalStorage.new(web3, accounts[0], accounts[1]); + const baseVault = await contracts.LPVault.new(web3); + const baseLP = await contracts.LiquidPledgingMock.new(web3); + lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); - liquidPledging = await LiquidPledging.new(web3, storage.$address, vault.$address, accounts[0], accounts[0], {gas: 6700000}) + const r = await lpFactory.newLP(accounts[0], escapeHatchDestination); - await storage.changeOwnership(liquidPledging.$address); - await vault.setLiquidPledging(liquidPledging.$address, {from: vaultOwner}); + const vaultAddress = r.events.DeployVault.returnValues.vault; + vault = new contracts.LPVault(web3, vaultAddress); + + const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; + liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); - await liquidPledging.addGiver('Giver1', '', 0, '0x0', { from: giver1 }); - await liquidPledging.addProject('Project1', '', adminProject1, 0, 0, '0x0', { from: adminProject1 }); + // set permissions + const kernel = new contracts.Kernel(web3, await liquidPledging.kernel()); + acl = new contracts.ACL(web3, await kernel.acl()); + await acl.createPermission(accounts[0], vault.$address, await vault.CANCEL_PAYMENT_ROLE(), accounts[0], { $extraGas: 200000 }); + await acl.createPermission(accounts[0], vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), accounts[0], { $extraGas: 200000 }); + await acl.grantPermission(escapeHatchCaller, vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); + await acl.revokePermission(accounts[0], vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); + + await liquidPledging.addGiver('Giver1', '', 0, '0x0', { from: giver1, $extraGas: 100000 }); + await liquidPledging.addProject('Project1', '', adminProject1, 0, 0, '0x0', { from: adminProject1, $extraGas: 100000 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); }); it('Should hold funds from liquidPledging', async function () { - await liquidPledging.donate(0, 2, { from: giver1, value: 10000 }); + await liquidPledging.donate(0, 2, { from: giver1, value: 10000, $extraGas: 100000 }); const balance = await web3.eth.getBalance(vault.$address); assert.equal(10000, balance); @@ -87,7 +97,7 @@ describe('Vault test', function () { it('escapeFunds should send funds to escapeHatchDestination', async function () { const preBalance = await web3.eth.getBalance(escapeHatchDestination); - await vault.escapeFunds(0x0, 1000, { from: vaultOwner }); + await vault.escapeFunds(0x0, 1000, { from: escapeHatchCaller, $extraGas: 200000 }); const vaultBalance = await web3.eth.getBalance(vault.$address); assert.equal(9000, vaultBalance); @@ -96,6 +106,19 @@ describe('Vault test', function () { const postBalance = await web3.eth.getBalance(escapeHatchDestination); assert.equal(expected, postBalance); + + await web3.eth.sendTransaction({from: escapeHatchCaller, to: vault.$address, value: '1000', gas: 21000}); + }); + + it('should restrict confirm payment to payments under specified amount', async function () { + await liquidPledging.withdraw(2, 300, {from: adminProject1, $extraGas: 200000}); + await liquidPledging.withdraw(2, 700, {from: adminProject1, $extraGas: 200000}); + + // set permission for 2nd param (p.amount) <= 300 + await acl.grantPermissionP(restrictedPaymentsConfirmer, vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), ["0x010600000000000000000000000000000000000000000000000000000000012c"], {$extraGas: 200000}); + + assertFail(vault.confirmPayment(1, { from: restrictedPaymentsConfirmer, gas: 4000000 })); + await vault.confirmPayment(0, { from: restrictedPaymentsConfirmer, $extraGas: 200000 }); }); }); From 4cfebbc5fb1062159faf439b91a1ba747c489dca Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 13 Feb 2018 00:24:26 +0100 Subject: [PATCH 26/52] moving things around / cleanup --- contracts/EternalStorage.sol | 96 ------- contracts/EternallyPersistentLib.sol | 108 -------- contracts/LiquidPledging.sol | 369 +-------------------------- contracts/LiquidPledgingBase.sol | 353 ++++++++++++++++++++++++- contracts/LiquidPledgingStorage.sol | 12 - index.js | 6 +- js/eternalStorage.js | 6 - js/liquidPledging.js | 6 - js/liquidPledgingMock.js | 5 - js/vault.js | 5 - test/AdminPlugins.js | 5 +- test/CancelPledge.js | 5 +- test/DelegationChain.js | 3 +- test/NormalOperation.js | 3 +- test/NormalizePledge.js | 5 +- test/Vault.js | 5 +- 16 files changed, 361 insertions(+), 631 deletions(-) delete mode 100644 contracts/EternalStorage.sol delete mode 100644 contracts/EternallyPersistentLib.sol delete mode 100644 contracts/LiquidPledgingStorage.sol delete mode 100644 js/eternalStorage.js delete mode 100644 js/liquidPledging.js delete mode 100644 js/liquidPledgingMock.js delete mode 100644 js/vault.js diff --git a/contracts/EternalStorage.sol b/contracts/EternalStorage.sol deleted file mode 100644 index 3531808..0000000 --- a/contracts/EternalStorage.sol +++ /dev/null @@ -1,96 +0,0 @@ -pragma solidity ^0.4.0; - -import "node_modules/giveth-common-contracts/contracts/Escapable.sol"; - -contract EternalStorage is Escapable { - - mapping(bytes32 => uint) UIntStorage; - mapping(bytes32 => int) IntStorage; - mapping(bytes32 => bool) BooleanStorage; - mapping(bytes32 => address) AddressStorage; - mapping(bytes32 => string) StringStorage; - mapping(bytes32 => bytes) BytesStorage; - mapping(bytes32 => bytes32) Bytes32Storage; - - function EternalStorage(address _escapeHatchCaller, address _escapeHatchDestination) - Escapable(_escapeHatchCaller, _escapeHatchDestination) public { - } - - /// UInt Storage - - function getUIntValue(bytes32 record) public view returns (uint) { - return UIntStorage[record]; - } - - function setUIntValue(bytes32 record, uint value) public onlyOwner { - UIntStorage[record] = value; - } - - function incrementUIntValue(bytes32 record) public returns (uint) { - return UIntStorage[record] += 1; - } - - /// Int Storage - - function getIntValue(bytes32 record) public view returns (int) { - return IntStorage[record]; - } - - function setIntValue(bytes32 record, int value) public onlyOwner { - IntStorage[record] = value; - } - - function incrementIntValue(bytes32 record) public returns (int) { - return IntStorage[record] += int(1); - } - - /// Address Storage - - function getAddressValue(bytes32 record) public view returns (address) { - return AddressStorage[record]; - } - - function setAddressValue(bytes32 record, address value) public onlyOwner { - AddressStorage[record] = value; - } - - /// String Storage - - function getStringValue(bytes32 record) public view returns (string) { - return StringStorage[record]; - } - - function setStringValue(bytes32 record, string value) public onlyOwner { - StringStorage[record] = value; - } - - /// Bytes Storage - - function getBytesValue(bytes32 record) public view returns (bytes) { - return BytesStorage[record]; - } - - function setBytesValue(bytes32 record, bytes value) public onlyOwner { - BytesStorage[record] = value; - } - - /// Bytes Storage - - function getBytes32Value(bytes32 record) public view returns (bytes32) { - return Bytes32Storage[record]; - } - - function setBytes32Value(bytes32 record, bytes32 value) public onlyOwner { - Bytes32Storage[record] = value; - } - - /// Boolean Storage - - function getBooleanValue(bytes32 record) public view returns (bool) { - return BooleanStorage[record]; - } - - function setBooleanValue(bytes32 record, bool value) public onlyOwner { - BooleanStorage[record] = value; - } -} diff --git a/contracts/EternallyPersistentLib.sol b/contracts/EternallyPersistentLib.sol deleted file mode 100644 index 067074a..0000000 --- a/contracts/EternallyPersistentLib.sol +++ /dev/null @@ -1,108 +0,0 @@ -pragma solidity ^0.4.0; - -import "./EternalStorage.sol"; - -library EternallyPersistentLib { - - // UInt - //TODO if we use assembly here, we can save ~ 600 gas / call, due to skipping the extcodesize check that solidity adds. - - function stgObjectGetUInt(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (uint) { - bytes32 record = keccak256(class, id, fieldName); - return _storage.getUIntValue(record); - } - - function stgObjectSetUInt(EternalStorage _storage, string class, uint id, string fieldName, uint value) internal { - bytes32 record = keccak256(class, id, fieldName); - return _storage.setUIntValue(record, value); - } - - // Boolean - - function stgObjectGetBoolean(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (bool) { - bytes32 record = keccak256(class, id, fieldName); - return _storage.getBooleanValue(record); - } - - function stgObjectSetBoolean(EternalStorage _storage, string class, uint id, string fieldName, bool value) internal { - bytes32 record = keccak256(class, id, fieldName); - return _storage.setBooleanValue(record, value); - } - - // string - - function stgObjectGetString(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (string) { - bytes32 record = keccak256(class, id, fieldName); - bytes4 sig = 0xa209a29c; // bytes4(keccak256("getStringValue(bytes32)")); - string memory s; - - assembly { - let ptr := mload(0x40) //Find empty storage location using "free memory pointer" - mstore(ptr, sig) //Place signature at beginning of empty storage - mstore(add(ptr, 0x04), record) //Place first argument directly next to signature - - let result := staticcall(sub(gas, 10000), _storage, ptr, 0x24, 0, 0) - - let size := returndatasize - returndatacopy(ptr, 0, size) // overwrite ptr to save a bit of gas - - // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. - // if the call returned error data, forward it - switch result case 0 { revert(ptr, size) } - default { - mstore(0x40, add(ptr, size)) // update free mem location - // We need to skip the first 32 bytes which contains the start offset of the returned byte array - s := add(ptr, 0x20) // set the string - } - } - - return s; - } - - function stgObjectSetString(EternalStorage _storage, string class, uint id, string fieldName, string value) internal { - bytes32 record = keccak256(class, id, fieldName); - return _storage.setStringValue(record, value); - } - - // address - - function stgObjectGetAddress(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (address) { - bytes32 record = keccak256(class, id, fieldName); - return _storage.getAddressValue(record); - } - - function stgObjectSetAddress(EternalStorage _storage, string class, uint id, string fieldName, address value) internal { - bytes32 record = keccak256(class, id, fieldName); - return _storage.setAddressValue(record, value); - } - - // bytes32 - - function stgObjectGetBytes32(EternalStorage _storage, string class, uint id, string fieldName) internal view returns (bytes32) { - bytes32 record = keccak256(class, id, fieldName); - return _storage.getBytes32Value(record); - } - - function stgObjectSetBytes32(EternalStorage _storage, string class, uint id, string fieldName, bytes32 value) internal { - bytes32 record = keccak256(class, id, fieldName); - return _storage.setBytes32Value(record, value); - } - - // Array - - function stgCollectionAddItem(EternalStorage _storage, bytes32 idArray) internal returns (uint) { - return _storage.incrementUIntValue(keccak256(idArray, "length")); - } - - function stgCollectionLength(EternalStorage _storage, bytes32 idArray) internal view returns (uint) { - return _storage.getUIntValue(keccak256(idArray, "length")); - } - - function stgCollectionIdFromIdx(EternalStorage _storage, bytes32 idArray, uint idx) internal view returns (bytes32) { - return _storage.getBytes32Value(keccak256(idArray, idx)); - } - - function stgUpgrade(EternalStorage _storage, address newContract) internal { - _storage.changeOwnership(newContract); - } -} \ No newline at end of file diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index c332fd8..8377259 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -27,7 +27,6 @@ import "./LiquidPledgingBase.sol"; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { - /// @notice This is how value enters the system and how pledges are created; /// the ether is sent to the vault, an pledge for the Giver is created (or /// found), the amount of ETH donated in wei is added to the `amount` in @@ -39,7 +38,6 @@ contract LiquidPledging is LiquidPledgingBase { function donate(uint64 idGiver, uint64 idReceiver) public payable { - // TODO: maybe need a separate role here to allow giver creation if (idGiver == 0) { // default to a 3 day (259200 seconds) commitTime idGiver = uint64(addGiver("", "", 259200, ILiquidPledgingPlugin(0x0))); @@ -93,9 +91,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.Pledge storage p = _findPledge(idPledge); PledgeAdmins.PledgeAdmin storage receiver = _findAdmin(idReceiver); - // PledgeAdmins.PledgeAdmin storage sender = _findAdmin(idSender); - // _checkAdminOwner(sender); require(p.pledgeState == PledgeState.Pledged); // If the sender is the owner of the Pledge @@ -128,7 +124,7 @@ contract LiquidPledging is LiquidPledgingBase { } else { // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, // so we want to reset the delegationChain - idPledge = _undelegate( + idPledge = _undelegate( idPledge, amount, p.delegationChain.length @@ -241,7 +237,6 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that is to be withdrawn /// @param amount Quantity of ether (in wei) to be withdrawn function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - //TODO don't fetch entire pledge Pledges.Pledge storage p = _findPledge(idPledge); require(p.pledgeState == Pledges.PledgeState.Paying); @@ -297,15 +292,13 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idPledge Id of the pledge that is to be canceled /// @param amount Quantity of ether (in wei) to be transfered to the /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public {//authP(PLEDGE_ADMIN_ROLE, arr(uint(idPledge))) public { + function cancelPledge(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); Pledges.Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(p.owner)))); - // PledgeAdmins.PledgeAdmin storage a = _findAdmin(p.owner); - // _checkAdminOwner(a); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -396,192 +389,6 @@ contract LiquidPledging is LiquidPledgingBase { } } -//////// -// Private methods -/////// - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledges.Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!_isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - Pledges.PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - uint64(oldPledge), - Pledges.PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - Pledges.PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledges.Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - Pledges.PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledges.Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - Pledges.PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledges.Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!_isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - Pledges.PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transfered. - /// @param to This is the id of the pledge that value will be transfered to. - /// @param _amount The amount of value that will be transfered. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledges.Pledge storage pFrom = _findPledge(from); - Pledges.Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -638,176 +445,4 @@ contract LiquidPledging is LiquidPledgingBase { return toPledge; } - -///////////// -// Plugins -///////////// - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - uint amount - ) internal returns (uint allowedAmount) { - - uint newAmount; - allowedAmount = amount; - PledgeAdmins.PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two seperate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledges.Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - allowedAmount - ); - } - } - - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) { - allowedAmount = amount; - - // Call the pledges plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the pledges plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } - - function getTime() public view returns(uint) { - return _getTime(); - } - - // Event Declarations - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - } diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index c1cea00..b28e6d1 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -38,6 +38,10 @@ interface ILPVault { /// data structures contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + ILPVault public vault; ///////////// @@ -51,7 +55,6 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { _; } - /////////////// // Constructor /////////////// @@ -99,12 +102,187 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { // Internal methods //////////////////// - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param a The admin being checked - // function _checkAdminOwner(PledgeAdmin a) internal constant { - // require(msg.sender == a.addr || msg.sender == address(a.plugin)); - // } + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledges.Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!_isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + Pledges.PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + uint64(oldPledge), + Pledges.PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + Pledges.PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledges.Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + Pledges.PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledges.Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + Pledges.PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledges.Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!_isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + Pledges.PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transfered. + /// @param to This is the id of the pledge that value will be transfered to. + /// @param _amount The amount of value that will be transfered. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledges.Pledge storage pFrom = _findPledge(from); + Pledges.Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } /// @notice A getter to find the longest commitTime out of the owner and all /// the delegates for a specified pledge @@ -149,4 +327,165 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { return _getOldestPledgeNotCanceled(p.oldPledge); } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + uint amount + ) internal returns (uint allowedAmount) + { + + uint newAmount; + allowedAmount = amount; + PledgeAdmins.PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two seperate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledges.Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the pledges plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the pledges plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } } diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol deleted file mode 100644 index f7573bc..0000000 --- a/contracts/LiquidPledgingStorage.sol +++ /dev/null @@ -1,12 +0,0 @@ -pragma solidity ^0.4.18; - -import "./EternalStorage.sol"; - -contract LiquidPledgingStorage { - - EternalStorage public _storage; - - function LiquidPledgingStorage(address _s) public { - _storage = EternalStorage(_s); - } -} \ No newline at end of file diff --git a/index.js b/index.js index f2fe61c..790e712 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -exports.LiquidPledging = require('./lib/liquidPledging.js'); -exports.LiquidPledgingMock = require('./lib/liquidPledgingMock.js'); +const contracts = require('./build/contracts'); +exports.LiquidPledging = contracts.LiquidPledging; exports.LiquidPledgingState = require('./lib/liquidPledgingState.js'); -exports.LPVault = require('./lib/vault.js'); +exports.LPVault = contracts.LPVault; diff --git a/js/eternalStorage.js b/js/eternalStorage.js deleted file mode 100644 index 4351a62..0000000 --- a/js/eternalStorage.js +++ /dev/null @@ -1,6 +0,0 @@ -const EternalStorageAbi = require('../build/EternalStorage.sol').EternalStorageAbi; -const EternalStorageCode = require('../build/EternalStorage.sol').EternalStorageByteCode; -const generateClass = require('eth-contract-class').default; - -module.exports = generateClass(EternalStorageAbi, EternalStorageCode); - diff --git a/js/liquidPledging.js b/js/liquidPledging.js deleted file mode 100644 index 55b709c..0000000 --- a/js/liquidPledging.js +++ /dev/null @@ -1,6 +0,0 @@ -const LiquidPledgingAbi = require('../build/LiquidPledging.sol').LiquidPledgingAbi; -const LiquidPledgingCode = require('../build/LiquidPledging.sol').LiquidPledgingByteCode; -const generateClass = require('eth-contract-class').default; - -module.exports = generateClass(LiquidPledgingAbi, LiquidPledgingCode); - diff --git a/js/liquidPledgingMock.js b/js/liquidPledgingMock.js deleted file mode 100644 index bd69d80..0000000 --- a/js/liquidPledgingMock.js +++ /dev/null @@ -1,5 +0,0 @@ -const LiquidPledgingMockAbi = require('../build/LiquidPledgingMock.sol').LiquidPledgingMockAbi; -const LiquidPledgingMockCode = require('../build/LiquidPledgingMock.sol').LiquidPledgingMockByteCode; -const generateClass = require('eth-contract-class').default; - -module.exports = generateClass(LiquidPledgingMockAbi, LiquidPledgingMockCode); diff --git a/js/vault.js b/js/vault.js deleted file mode 100644 index ef19239..0000000 --- a/js/vault.js +++ /dev/null @@ -1,5 +0,0 @@ -const LPVaultAbi = require('../build/LPVault.sol').LPVaultAbi; -const LPVaultByteCode = require('../build/LPVault.sol').LPVaultByteCode; -const generateClass = require('eth-contract-class').default; - -module.exports = generateClass(LPVaultAbi, LPVaultByteCode); \ No newline at end of file diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index 14f6712..fc5a095 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -32,14 +32,13 @@ describe('LiquidPledging plugins test', function () { before(async () => { testrpc = TestRPC.server({ - ws: true, gasLimit: 6700000, total_accounts: 10, }); - testrpc.listen(8546, '127.0.0.1'); + testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8546'); + web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[1]; adminProject1 = accounts[2]; diff --git a/test/CancelPledge.js b/test/CancelPledge.js index b38f680..5e6d103 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -29,14 +29,13 @@ describe('LiquidPledging cancelPledge normal scenario', function () { before(async () => { testrpc = TestRPC.server({ - ws: true, gasLimit: 6700000, total_accounts: 10, }); - testrpc.listen(8546, '127.0.0.1'); + testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8546'); + web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[ 1 ]; adminProject1 = accounts[ 2 ]; diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 4610668..6d961f6 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -33,14 +33,13 @@ describe('DelegationChain test', function () { const gasUsage = {}; before(async () => { testrpc = TestRPC.server({ - ws: true, gasLimit: 6700000, total_accounts: 10, }); testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8545'); + web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[1]; delegate1 = accounts[2]; diff --git a/test/NormalOperation.js b/test/NormalOperation.js index c7e12b8..8f14b3b 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -39,14 +39,13 @@ describe('LiquidPledging test', function () { before(async () => { testrpc = TestRPC.server({ - ws: true, gasLimit: 6700000, total_accounts: 11, }); testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8545'); + web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[1]; delegate1 = accounts[2]; diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 6147cfb..beef5b9 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -31,14 +31,13 @@ describe('NormalizePledge test', function () { before(async () => { testrpc = TestRPC.server({ - ws: true, gasLimit: 6700000, total_accounts: 10, }); - testrpc.listen(8546, '127.0.0.1'); + testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8546'); + web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[1]; delegate1 = accounts[2]; diff --git a/test/Vault.js b/test/Vault.js index ddaad54..12212f4 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -27,14 +27,13 @@ describe('Vault test', function () { before(async () => { testrpc = TestRPC.server({ - ws: true, gasLimit: 6700000, total_accounts: 10, }); - testrpc.listen(8546, '127.0.0.1'); + testrpc.listen(8545, '127.0.0.1'); - web3 = new Web3('ws://localhost:8546'); + web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); giver1 = accounts[ 1 ]; adminProject1 = accounts[ 2 ]; From 6c8355e346d9d614338a217577b8752705b03881 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 13 Feb 2018 01:24:19 +0100 Subject: [PATCH 27/52] allow proxy donations fix bug where eth could be burned to 0 pledge --- contracts/EscapableApp.sol | 44 +++---- contracts/LPVault.sol | 21 ++-- contracts/LiquidPledging.sol | 207 ++++--------------------------- contracts/LiquidPledgingBase.sol | 185 ++++++++++++++++++++++++++- contracts/PledgeAdmins.sol | 21 +++- test/CancelPledge.js | 2 +- test/NormalOperation.js | 2 +- test/Vault.js | 2 +- 8 files changed, 262 insertions(+), 222 deletions(-) diff --git a/contracts/EscapableApp.sol b/contracts/EscapableApp.sol index 3a22751..fd2b2cd 100644 --- a/contracts/EscapableApp.sol +++ b/contracts/EscapableApp.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.4.15; +pragma solidity ^0.4.18; /* Copyright 2016, Jordi Baylina Contributor: Adrià Massanet @@ -22,8 +22,8 @@ import "giveth-common-contracts/contracts/ERC20.sol"; import "@aragon/os/contracts/apps/AragonApp.sol"; -/// @dev `Escapable` is a base level contract built off of the `Owned` -/// contract; it creates an escape hatch function that can be called in an +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an /// emergency that will allow designated addresses to send any ether or tokens /// held in the contract to an `escapeHatchDestination` as long as they were /// not blacklisted @@ -31,6 +31,9 @@ contract EscapableApp is AragonApp { // warning whoever has this role can move all funds to the `escapeHatchDestination` bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + address public escapeHatchDestination; mapping (address=>bool) private escapeBlacklist; // Token contract addresses @@ -45,23 +48,6 @@ contract EscapableApp is AragonApp { escapeHatchDestination = _escapeHatchDestination; } - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { - return !escapeBlacklist[_token]; - } - /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether @@ -84,6 +70,20 @@ contract EscapableApp is AragonApp { EscapeHatchCalled(_token, balance); } - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } } diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index ba9bfbd..bc568db 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.4.11; +pragma solidity ^0.4.18; /* Copyright 2017, Jordi Baylina @@ -87,6 +87,7 @@ contract LPVault is EscapableApp { function initialize(address _escapeHatchDestination) onlyInit public { require(false); // overload the EscapableApp + _escapeHatchDestination; } /// @param _liquidPledging @@ -110,7 +111,7 @@ contract LPVault is EscapableApp { /// @param _automatic If true, payments will confirm instantly, if false /// the training wheels are put on and the owner must manually approve /// every payment - function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, ar(_automatic)) { + function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, _arr(_automatic)) { autoPay = _automatic; AutoPaySet(autoPay); } @@ -138,7 +139,7 @@ contract LPVault is EscapableApp { AuthorizePayment(idPayment, _ref, _dest, _amount); if (autoPay) { - doConfirmPayment(idPayment); + _doConfirmPayment(idPayment); } return idPayment; @@ -150,21 +151,21 @@ contract LPVault is EscapableApp { /// has been authorized /// @param _idPayment Array lookup for the payment. function confirmPayment(uint _idPayment) public { - doConfirmPayment(_idPayment); + _doConfirmPayment(_idPayment); } /// @notice When `autopay` is `false` and after a payment has been authorized /// to allow the owner to cancel a payment instead of confirming it. /// @param _idPayment Array lookup for the payment. function cancelPayment(uint _idPayment) public { - doCancelPayment(_idPayment); + _doCancelPayment(_idPayment); } /// @notice `onlyOwner` An efficient way to confirm multiple payments /// @param _idPayments An array of multiple payment ids function multiConfirm(uint[] _idPayments) external { for (uint i = 0; i < _idPayments.length; i++) { - doConfirmPayment(_idPayments[i]); + _doConfirmPayment(_idPayments[i]); } } @@ -172,7 +173,7 @@ contract LPVault is EscapableApp { /// @param _idPayments An array of multiple payment ids function multiCancel(uint[] _idPayments) external { for (uint i = 0; i < _idPayments.length; i++) { - doCancelPayment(_idPayments[i]); + _doCancelPayment(_idPayments[i]); } } @@ -205,7 +206,7 @@ contract LPVault is EscapableApp { /// @notice Transfers ETH according to the data held within the specified /// payment id (internal function) /// @param _idPayment id number for the payment about to be fulfilled - function doConfirmPayment(uint _idPayment) internal { + function _doConfirmPayment(uint _idPayment) internal { require(_idPayment < payments.length); Payment storage p = payments[_idPayment]; require(p.state == PaymentStatus.Pending); @@ -221,7 +222,7 @@ contract LPVault is EscapableApp { /// @notice Cancels a pending payment (internal function) /// @param _idPayment id number for the payment - function doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { + function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { require(_idPayment < payments.length); Payment storage p = payments[_idPayment]; require(p.state == PaymentStatus.Pending); @@ -233,7 +234,7 @@ contract LPVault is EscapableApp { CancelPayment(_idPayment, p.ref); } - function ar(bool a) internal pure returns (uint256[] r) { + function _arr(bool a) internal pure returns (uint256[] r) { r = new uint256[](1); uint _a; assembly { diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 8377259..ccee8c9 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -1,9 +1,9 @@ -pragma solidity ^0.4.11; +pragma solidity ^0.4.18; /* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,6 +27,21 @@ import "./LiquidPledgingBase.sol"; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function addGiverAndDonate(uint64 idReceiver) + public payable + { + addGiverAndDonate(idReceiver, msg.sender); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress) + public payable + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = _addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver); + } + /// @notice This is how value enters the system and how pledges are created; /// the ether is sent to the vault, an pledge for the Giver is created (or /// found), the amount of ETH donated in wei is added to the `amount` in @@ -38,14 +53,9 @@ contract LiquidPledging is LiquidPledgingBase { function donate(uint64 idGiver, uint64 idReceiver) public payable { - if (idGiver == 0) { - // default to a 3 day (259200 seconds) commitTime - idGiver = uint64(addGiver("", "", 259200, ILiquidPledgingPlugin(0x0))); - } - + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer PledgeAdmins.PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); - require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(idGiver)))); uint amount = msg.value; require(amount > 0); @@ -66,9 +76,9 @@ contract LiquidPledging is LiquidPledgingBase { Pledges.Pledge storage pTo = _findPledge(idPledge); pTo.amount += amount; - Transfer(0, idPledge, amount); // An event + Transfer(0, idPledge, amount); - transfer(idGiver, idPledge, amount, idReceiver); // LP accounting + _transfer(idGiver, idPledge, amount, idReceiver); } /// @notice Transfers amounts between pledges for internal accounting @@ -87,121 +97,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idSender), amount)) public { - idPledge = normalizePledge(idPledge); - - Pledges.Pledge storage p = _findPledge(idPledge); - PledgeAdmins.PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - Pledges.PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - - } else { - // This should never be reached as the reciever.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - return; - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pldege - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate + _transfer(idSender, idPledge, amount, idReceiver); } /// @notice Authorizes a payment be made from the `vault` can be used by the @@ -388,61 +284,4 @@ contract LiquidPledging is LiquidPledgingBase { normalizePledge( pledges[i] ); } } - - /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledges.Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != Pledges.PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - Pledges.PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - Pledges.PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } } diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index b28e6d1..ac5961f 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.4.11; +pragma solidity ^0.4.18; /* Copyright 2017, Jordi Baylina @@ -61,6 +61,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { function initialize(address _escapeHatchDestination) onlyInit public { require(false); // overload the EscapableApp + _escapeHatchDestination; } /// @param _vault The vault where the ETH backing the pledges is stored @@ -98,10 +99,192 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { name = delegate.name; } + /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledges.Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != Pledges.PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + Pledges.PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + Pledges.PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + //////////////////// // Internal methods //////////////////// + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledges.Pledge storage p = _findPledge(idPledge); + PledgeAdmins.PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + Pledges.PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the reciever.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + /// @notice `transferOwnershipToProject` allows for the transfer of /// ownership to the project, but it can also be called by a project /// to un-delegate everyone by setting one's own id for the idReceiver diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 86ee7f0..280ec54 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -79,6 +79,23 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 commitTime, ILiquidPledgingPlugin plugin ) public returns (uint64 idGiver) + { + return _addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + function _addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) { require(isValidPlugin(plugin)); // Plugin check @@ -88,7 +105,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { admins.push( PledgeAdmin( PledgeAdminType.Giver, - msg.sender, // TODO: is this needed? + addr, // TODO: is this needed? name, url, commitTime, @@ -340,7 +357,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A getter to look up a Admin's details /// @param idAdmin The id for the Admin to lookup /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal returns (PledgeAdmin storage) { + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { require(idAdmin < admins.length); return admins[idAdmin]; } diff --git a/test/CancelPledge.js b/test/CancelPledge.js index 5e6d103..c6c83c9 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -65,7 +65,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { it('Should add project and donate ', async () => { await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, '0x0', { from: adminProject1 }); - await liquidPledging.donate(0, 1, { from: giver1, value: '1000' }); + await liquidPledging.addGiverAndDonate(1, { from: giver1, value: '1000' }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 8f14b3b..ed1f5c6 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -335,7 +335,7 @@ describe('LiquidPledging test', function () { it('Should make a donation and create giver', async () => { const oldNPledges = await liquidPledging.numberOfPledges(); const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.donate(0, 1, { from: giver2, value: utils.toWei('1'), $extraGas: 200000 }); + await liquidPledging.addGiverAndDonate(1, { from: giver2, value: utils.toWei('1'), $extraGas: 200000 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 1); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); diff --git a/test/Vault.js b/test/Vault.js index 12212f4..cd15a24 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -79,7 +79,7 @@ describe('Vault test', function () { }); it('Should hold funds from liquidPledging', async function () { - await liquidPledging.donate(0, 2, { from: giver1, value: 10000, $extraGas: 100000 }); + await liquidPledging.addGiverAndDonate(2, { from: giver1, value: 10000, $extraGas: 100000 }); const balance = await web3.eth.getBalance(vault.$address); assert.equal(10000, balance); From 93e910cc9741625328821fdc6a5336bf5693d7e2 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 13 Feb 2018 19:56:11 +0100 Subject: [PATCH 28/52] move all state variables to seperate contract By placing all state variables in 1 place, this allows us to add additional state at a later date, and not overwrite an existing state variable. Also optimized struct layout to better pack --- contracts/LiquidPledging.sol | 32 +++++------ contracts/LiquidPledgingBase.sol | 82 ++++++++++++----------------- contracts/LiquidPledgingPlugins.sol | 6 +-- contracts/LiquidPledgingStorage.sol | 57 ++++++++++++++++++++ contracts/PledgeAdmins.sol | 48 +++++------------ contracts/Pledges.sol | 26 ++------- 6 files changed, 126 insertions(+), 125 deletions(-) create mode 100644 contracts/LiquidPledgingStorage.sol diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index ccee8c9..3e29641 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -54,7 +54,7 @@ contract LiquidPledging is LiquidPledgingBase { public payable { require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - PledgeAdmins.PledgeAdmin storage sender = _findAdmin(idGiver); + PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); uint amount = msg.value; @@ -70,10 +70,10 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, 0, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); - Pledges.Pledge storage pTo = _findPledge(idPledge); + Pledge storage pTo = _findPledge(idPledge); pTo.amount += amount; Transfer(0, idPledge, amount); @@ -108,10 +108,10 @@ contract LiquidPledging is LiquidPledgingBase { function withdraw(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); // Updates pledge info - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - PledgeAdmins.PledgeAdmin storage owner = _findAdmin(p.owner); + PledgeAdmin storage owner = _findAdmin(p.owner); require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(p.owner)))); uint64 idNewPledge = _findOrCreatePledge( @@ -120,7 +120,7 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, p.oldPledge, - Pledges.PledgeState.Paying + PledgeState.Paying ); _doTransfer(idPledge, idNewPledge, amount); @@ -128,14 +128,14 @@ contract LiquidPledging is LiquidPledgingBase { vault.authorizePayment(bytes32(idNewPledge), owner.addr, amount); } - /// @notice `onlyVault` Confirms a withdraw request changing the Pledges.PledgeState + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState /// from Paying to Paid /// @param idPledge Id of the pledge that is to be withdrawn /// @param amount Quantity of ether (in wei) to be withdrawn function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == Pledges.PledgeState.Paying); + require(p.pledgeState == PledgeState.Paying); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -143,20 +143,20 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, p.oldPledge, - Pledges.PledgeState.Paid + PledgeState.Paid ); _doTransfer(idPledge, idNewPledge, amount); } - /// @notice `onlyVault` Cancels a withdraw request, changing the Pledges.PledgeState + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState /// from Paying back to Pledged /// @param idPledge Id of the pledge that's withdraw is to be canceled /// @param amount Quantity of ether (in wei) to be canceled function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == Pledges.PledgeState.Paying); + require(p.pledgeState == PledgeState.Paying); // When a payment is canceled, never is assigned to a project. uint64 idOldPledge = _findOrCreatePledge( @@ -165,7 +165,7 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, p.oldPledge, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); idOldPledge = normalizePledge(idOldPledge); @@ -176,7 +176,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice Changes the `project.canceled` flag to `true`; cannot be undone /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) authP(PLEDGE_ADMIN_ROLE, arr(uint(idProject))) public { - PledgeAdmins.PledgeAdmin storage project = _findAdmin(idProject); + PledgeAdmin storage project = _findAdmin(idProject); // _checkAdminOwner(project); project.canceled = true; @@ -191,7 +191,7 @@ contract LiquidPledging is LiquidPledgingBase { function cancelPledge(uint64 idPledge, uint amount) public { idPledge = normalizePledge(idPledge); - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(p.owner)))); diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index ac5961f..3bf313b 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -19,31 +19,20 @@ pragma solidity ^0.4.18; along with this program. If not, see . */ -import "./ILiquidPledgingPlugin.sol"; -// import "giveth-common-contracts/contracts/Escapable.sol"; -import "./EscapableApp.sol"; +import "./LiquidPledgingStorage.sol"; import "./PledgeAdmins.sol"; import "./Pledges.sol"; - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, uint _amount) public; - function () public payable; -} +import "./EscapableApp.sol"; /// @dev `LiquidPledgingBase` is the base level contract used to carry out /// liquidPledging's most basic functions, mostly handling and searching the /// data structures -contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { +contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, EscapableApp { // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); - ILPVault public vault; - ///////////// // Modifiers ///////////// @@ -99,7 +88,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { name = delegate.name; } - /// @notice Only affects pledges with the Pledged Pledges.PledgeState for 2 things: + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the /// commitTime, it changes the owner to be the proposed project @@ -117,11 +106,11 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { /// @param idPledge This is the id of the pledge that will be normalized /// @return The normalized Pledge! function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); // Check to make sure this pledge hasn't already been used // or is in the process of being used - if (p.pledgeState != Pledges.PledgeState.Pledged) { + if (p.pledgeState != PledgeState.Pledged) { return idPledge; } @@ -133,7 +122,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, p.oldPledge, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); uint64 toPledge = _findOrCreatePledge( p.intendedProject, @@ -141,7 +130,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, oldPledge, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); _doTransfer(idPledge, toPledge, p.amount); idPledge = toPledge; @@ -170,19 +159,19 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { require(idReceiver > 0); // prevent burning value idPledge = normalizePledge(idPledge); - Pledges.Pledge storage p = _findPledge(idPledge); - PledgeAdmins.PledgeAdmin storage receiver = _findAdmin(idReceiver); + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); require(p.pledgeState == PledgeState.Pledged); // If the sender is the owner of the Pledge if (p.owner == idSender) { - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { + if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); - } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { + } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); - } else if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { + } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { @@ -197,7 +186,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, p.oldPledge, - Pledges.PledgeState.Pledged); + PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); } else { _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); @@ -226,7 +215,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { if (senderDIdx != NOTFOUND) { // And the receiver is another Giver - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Giver) { + if (receiver.adminType == PledgeAdminType.Giver) { // Only transfer to the Giver who owns the pledge assert(p.owner == idReceiver); _undelegate(idPledge, amount, p.delegationChain.length); @@ -234,7 +223,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { } // And the receiver is another Delegate - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Delegate) { + if (receiver.adminType == PledgeAdminType.Delegate) { uint receiverDIdx = _getDelegateIdx(p, idReceiver); // And not in the delegationChain @@ -272,7 +261,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { // And the receiver is a Project, all the delegates after the sender // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdmins.PledgeAdminType.Project) { + if (receiver.adminType == PledgeAdminType.Project) { idPledge = _undelegate( idPledge, amount, @@ -297,7 +286,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { uint64 idReceiver ) internal { - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); // Ensure that the pledge is not already at max pledge depth // and the project has not been canceled @@ -310,7 +299,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, p.oldPledge, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); uint64 toPledge = _findOrCreatePledge( idReceiver, // Set the new owner @@ -318,7 +307,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, uint64(oldPledge), - Pledges.PledgeState.Pledged + PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); } @@ -342,7 +331,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, 0, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); } @@ -358,7 +347,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { uint64 idReceiver ) internal { - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); require(p.delegationChain.length < MAX_DELEGATES); uint64[] memory newDelegationChain = new uint64[]( @@ -377,7 +366,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, p.oldPledge, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); } @@ -394,7 +383,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { uint q ) internal returns (uint64 toPledge) { - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); uint64[] memory newDelegationChain = new uint64[]( p.delegationChain.length - q ); @@ -408,7 +397,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { 0, 0, p.oldPledge, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); } @@ -426,7 +415,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { uint64 idReceiver ) internal { - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); require(!_isProjectCanceled(idReceiver)); @@ -437,7 +426,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { idReceiver, uint64(_getTime() + _maxCommitTime(p)), p.oldPledge, - Pledges.PledgeState.Pledged + PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); } @@ -456,8 +445,8 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { return; } - Pledges.Pledge storage pFrom = _findPledge(from); - Pledges.Pledge storage pTo = _findPledge(to); + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); require(pFrom.amount >= amount); pFrom.amount -= amount; @@ -486,7 +475,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { } /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges + /// @param idPledge The starting place to lookup the pledges /// @return The oldest idPledge that hasn't been canceled (DUH!) function _getOldestPledgeNotCanceled( uint64 idPledge @@ -534,14 +523,13 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { uint amount ) internal returns (uint allowedAmount) { - uint newAmount; allowedAmount = amount; - PledgeAdmins.PledgeAdmin storage admin = _findAdmin(adminId); + PledgeAdmin storage admin = _findAdmin(adminId); // Checks admin has a plugin assigned and a non-zero amount is requested if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two seperate functions called in the plugin. + // There are two separate functions called in the plugin. // One is called before the transfer and one after if (before) { newAmount = admin.plugin.beforeTransfer( @@ -588,7 +576,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { // or transferring context uint64 offset = idPledge == fromPledge ? 0 : 256; allowedAmount = amount; - Pledges.Pledge storage p = _findPledge(idPledge); + Pledge storage p = _findPledge(idPledge); // Always call the plugin on the owner allowedAmount = _callPlugin( @@ -644,7 +632,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { { allowedAmount = amount; - // Call the pledges plugins in the transfer context + // Call the plugins in the transfer context allowedAmount = _callPluginsPledge( before, fromPledge, @@ -653,7 +641,7 @@ contract LiquidPledgingBase is PledgeAdmins, Pledges, EscapableApp { allowedAmount ); - // Call the pledges plugins in the receive context + // Call the plugins in the receive context allowedAmount = _callPluginsPledge( before, toPledge, diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index d28af85..b92489b 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -20,17 +20,15 @@ pragma solidity ^0.4.18; */ import "@aragon/os/contracts/apps/AragonApp.sol"; +import "./LiquidPledgingStorage.sol"; /// NOTICE: This contract is not using EternalStorage. This is done to save gas. The pluginWhitelist /// should be fairly small, and would be trivial and relatively cheap to re-add all valid plugins /// when the LiquidPledging contract is upgraded -contract LiquidPledgingPlugins is AragonApp { +contract LiquidPledgingPlugins is LiquidPledgingStorage, AragonApp { bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - mapping (bytes32 => bool) pluginWhitelist; - bool public whitelistDisabled = false; - function addValidPlugin(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { pluginWhitelist[contractHash] = true; } diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol new file mode 100644 index 0000000..8cf4740 --- /dev/null +++ b/contracts/LiquidPledgingStorage.sol @@ -0,0 +1,57 @@ +pragma solidity ^0.4.18; + +import "./ILiquidPledgingPlugin.sol"; + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, uint _amount) public; + function () public payable; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + mapping (bytes32 => bool) pluginWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; +} \ No newline at end of file diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 280ec54..78799c5 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -18,8 +18,6 @@ pragma solidity ^0.4.18; You should have received a copy of the GNU General Public License along with this program. If not, see . */ - -import "./ILiquidPledgingPlugin.sol"; import "./LiquidPledgingPlugins.sol"; import "@aragon/os/contracts/apps/AragonApp.sol"; import "@aragon/os/contracts/acl/ACL.sol"; @@ -32,25 +30,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; - enum PledgeAdminType { Giver, Delegate, Project } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - string name; - string url; // Can be IPFS hash - uint64 commitTime; // In seconds, used for Givers' & Delegates' vetos - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - } - // Events event GiverAdded(uint64 indexed idGiver); event GiverUpdated(uint64 indexed idGiver); @@ -59,8 +38,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { event ProjectAdded(uint64 indexed idProject); event ProjectUpdated(uint64 indexed idProject); - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - //////////////////// // Public functions //////////////////// @@ -105,13 +82,13 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { admins.push( PledgeAdmin( PledgeAdminType.Giver, - addr, // TODO: is this needed? - name, - url, + addr, // TODO: is this needed? Yes, until aragon has an easy way to see who has permissions commitTime, 0, false, - plugin) + plugin, + name, + url) ); _grantPledgeAdminPermission(msg.sender, idGiver); @@ -175,12 +152,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { PledgeAdmin( PledgeAdminType.Delegate, msg.sender, - name, - url, commitTime, 0, false, - plugin) + plugin, + name, + url) ); _grantPledgeAdminPermission(msg.sender, idDelegate); @@ -257,12 +234,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { PledgeAdmin( PledgeAdminType.Project, projectAdmin, - name, - url, commitTime, parentProject, false, - plugin) + plugin, + name, + url) ); _grantPledgeAdminPermission(projectAdmin, idProject); @@ -294,7 +271,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { PledgeAdmin storage project = _findAdmin(idProject); require(project.adminType == PledgeAdminType.Project); - // require(project.addr == msg.sender); project.addr = newAddr; project.name = newName; @@ -397,8 +373,8 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { return(1); } - PledgeAdmin storage parentA = _findAdmin(a.parentProject); - return _getProjectLevel(parentA) + 1; + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; } function _grantPledgeAdminPermission(address _who, uint64 idPledge) internal { diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index fcf727d..4901422 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -20,8 +20,9 @@ pragma solidity ^0.4.18; */ import "@aragon/os/contracts/apps/AragonApp.sol"; +import "./LiquidPledgingStorage.sol"; -contract Pledges is AragonApp { +contract Pledges is LiquidPledgingStorage, AragonApp { // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 10; @@ -29,25 +30,6 @@ contract Pledges is AragonApp { // a constant for when a delegate is requested that is not in the system uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - enum PledgeState { Pledged, Paying, Paid } - - struct Pledge { - // uint id; // the id of this Pledge - uint amount; - uint64 owner; // PledgeAdmin - uint64[] delegationChain; // List of delegates in order of authority - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - PledgeState pledgeState; // Pledged, Paying, Paid - } - - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - ///////////////////////////// // Public constant functions //////////////////////////// @@ -112,7 +94,7 @@ contract Pledges is AragonApp { PledgeState state ) internal returns (uint64) { - bytes32 hPledge = keccak256(owner, delegationChain, intendedProject, commitTime, oldPledge, state); + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, state); uint64 id = hPledge2idx[hPledge]; if (id > 0) { return id; @@ -123,8 +105,8 @@ contract Pledges is AragonApp { pledges.push( Pledge( 0, - owner, delegationChain, + owner, intendedProject, commitTime, oldPledge, From cdf8f609cce934c474ec4383c202ad7555b3a583 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 15 Feb 2018 15:42:19 -0800 Subject: [PATCH 29/52] fix multi-inheritance ordering w/ most base-like coming first, and reserve storage slots for future upgrades --- contracts/EscapableApp.sol | 1 + contracts/LiquidPledgingBase.sol | 2 +- contracts/LiquidPledgingPlugins.sol | 2 +- contracts/LiquidPledgingStorage.sol | 5 +++++ contracts/Pledges.sol | 2 +- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/contracts/EscapableApp.sol b/contracts/EscapableApp.sol index fd2b2cd..87dce90 100644 --- a/contracts/EscapableApp.sol +++ b/contracts/EscapableApp.sol @@ -36,6 +36,7 @@ contract EscapableApp is AragonApp { address public escapeHatchDestination; mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 3bf313b..9634f30 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -27,7 +27,7 @@ import "./EscapableApp.sol"; /// @dev `LiquidPledgingBase` is the base level contract used to carry out /// liquidPledging's most basic functions, mostly handling and searching the /// data structures -contract LiquidPledgingBase is LiquidPledgingStorage, PledgeAdmins, Pledges, EscapableApp { +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index b92489b..2bd8148 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -25,7 +25,7 @@ import "./LiquidPledgingStorage.sol"; /// NOTICE: This contract is not using EternalStorage. This is done to save gas. The pluginWhitelist /// should be fairly small, and would be trivial and relatively cheap to re-add all valid plugins /// when the LiquidPledging contract is upgraded -contract LiquidPledgingPlugins is LiquidPledgingStorage, AragonApp { +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage { bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol index 8cf4740..15b11e7 100644 --- a/contracts/LiquidPledgingStorage.sol +++ b/contracts/LiquidPledgingStorage.sol @@ -54,4 +54,9 @@ contract LiquidPledgingStorage { bool public whitelistDisabled = false; ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; } \ No newline at end of file diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index 4901422..b83e29d 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -22,7 +22,7 @@ pragma solidity ^0.4.18; import "@aragon/os/contracts/apps/AragonApp.sol"; import "./LiquidPledgingStorage.sol"; -contract Pledges is LiquidPledgingStorage, AragonApp { +contract Pledges is AragonApp, LiquidPledgingStorage { // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_DELEGATES = 10; From 82945171e89bcd65d73b3dde00c38ab390c78b85 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 15 Feb 2018 17:32:30 -0800 Subject: [PATCH 30/52] only compile necessary contracts to speedup solcpiler --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 419ebe7..40ade2a 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "scripts": { "test": "npm run build; mocha --harmony", - "sol-compile": "solcpiler -i './contracts/**/*.sol'", + "sol-compile": "solcpiler -i './contracts/+(LPVault|LPFactory|LiquidPledging|LiquidPledgingMock|TestSimpleProjectPlugin|TestSimpleProjectPluginFactory).sol' --solc-version v0.4.18+commit.9cf6e910", "js-compile": "babel -d lib/ js/", "build": "npm run sol-compile; npm run js-compile", "prepublish": "npm run build" From 46e87cffa1fa95aea6bc0dc29a0a96f614829607 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 15 Feb 2018 17:33:04 -0800 Subject: [PATCH 31/52] minor fixes --- contracts/LiquidPledgingMock.sol | 2 ++ contracts/LiquidPledgingPlugins.sol | 21 ++++++++++++--------- contracts/LiquidPledgingStorage.sol | 5 +++++ contracts/PledgeAdmins.sol | 3 --- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index 5052179..797ab79 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -18,6 +18,8 @@ pragma solidity ^0.4.11; */ import "./LiquidPledging.sol"; +// hack so that solcpiler will generate a contracts.Kernel object +import "@aragon/os/contracts/kernel/Kernel.sol"; /// @dev `LiquidPledgingMock` allows for mocking up /// a `LiquidPledging` contract with the added ability diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index 2bd8148..0916b92 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -22,9 +22,6 @@ pragma solidity ^0.4.18; import "@aragon/os/contracts/apps/AragonApp.sol"; import "./LiquidPledgingStorage.sol"; -/// NOTICE: This contract is not using EternalStorage. This is done to save gas. The pluginWhitelist -/// should be fairly small, and would be trivial and relatively cheap to re-add all valid plugins -/// when the LiquidPledging contract is upgraded contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage { bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); @@ -39,11 +36,11 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage { } } - function removeValidPlugin(bytes32 contractHash) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPlugin(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { pluginWhitelist[contractHash] = false; } - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + function useWhitelist(bool useWhitelist) external authP(PLUGIN_MANAGER_ROLE, _arr(useWhitelist)) { whitelistDisabled = !useWhitelist; } @@ -65,13 +62,19 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage { // allocate output byte array - this could also be done without assembly // by using o_code = new bytes(size) o_code := mload(0x40) - // new "memory end" including padding - mstore(0x40, add(o_code, and(add(add(size, 0x20), 0x1f), not(0x1f)))) - // store length in memory - mstore(o_code, size) + mstore(o_code, size) // store length in memory // actually retrieve the code, this needs assembly extcodecopy(addr, add(o_code, 0x20), 0, size) } return keccak256(o_code); } + + function _arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } } \ No newline at end of file diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol index 15b11e7..ad3e068 100644 --- a/contracts/LiquidPledgingStorage.sol +++ b/contracts/LiquidPledgingStorage.sol @@ -22,6 +22,11 @@ contract LiquidPledgingStorage { /// and can own pledges and act as delegates struct PledgeAdmin { PledgeAdminType adminType; // Giver, Delegate or Project + // TODO: this is interesting... + // it is possible to revoke permission for this addr to be able to + // manage this pledgeAdmin. So we are storing the addr, which may or may not + // have permission to manage this PledgeAdmin. Maybe we need a custom + // ACL which provides a reverse lookup of addys granted a permission address addr; // Account or contract address for admin uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto uint64 parentProject; // Only for projects diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 78799c5..09ff9b6 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -118,7 +118,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { { PledgeAdmin storage giver = _findAdmin(idGiver); require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - // require(giver.addr == msg.sender); // Current addr had to send this tx giver.addr = newAddr; giver.name = newName; giver.url = newUrl; @@ -189,7 +188,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(delegate.adminType == PledgeAdminType.Delegate); - // require(delegate.addr == msg.sender);// Current addr had to send this tx delegate.addr = newAddr; delegate.name = newName; delegate.url = newUrl; @@ -223,7 +221,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { if (parentProject != 0) { PledgeAdmin storage a = _findAdmin(parentProject); - // require(a.adminType == PledgeAdminType.Project); // getProjectLevel will check that parentProject has a `Project` adminType require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); } From 3ae23500c649ad4a724acab5759ebaae5bbf4860 Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 16 Feb 2018 13:44:44 -0800 Subject: [PATCH 32/52] convert liquidPledging to accept a different token per pledge --- contracts/ILiquidPledgingPlugin.sol | 2 + contracts/LPVault.sol | 32 +++--- contracts/LiquidPledging.sol | 33 +++--- contracts/LiquidPledgingBase.sol | 25 ++++- contracts/LiquidPledgingStorage.sol | 4 +- contracts/Pledges.sol | 6 +- contracts/test/StandardToken.sol | 151 ++++++++++++++++++++++++++++ js/liquidPledgingState.js | 4 +- package.json | 2 +- test/AdminPlugins.js | 5 + test/CancelPledge.js | 7 +- test/DelegationChain.js | 7 +- test/NormalOperation.js | 110 ++++++++++++-------- test/NormalizePledge.js | 13 ++- test/Vault.js | 21 ++-- 15 files changed, 320 insertions(+), 102 deletions(-) create mode 100644 contracts/test/StandardToken.sol diff --git a/contracts/ILiquidPledgingPlugin.sol b/contracts/ILiquidPledgingPlugin.sol index ba7fdb6..b29397a 100644 --- a/contracts/ILiquidPledgingPlugin.sol +++ b/contracts/ILiquidPledgingPlugin.sol @@ -49,6 +49,7 @@ contract ILiquidPledgingPlugin { uint64 pledgeFrom, uint64 pledgeTo, uint64 context, + address token, uint amount ) public returns (uint maxAllowed); /// @notice Plugins are used (much like web hooks) to initiate an action @@ -76,6 +77,7 @@ contract ILiquidPledgingPlugin { uint64 pledgeFrom, uint64 pledgeTo, uint64 context, + address token, uint amount ) public; } diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index bc568db..7c95200 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -18,9 +18,6 @@ pragma solidity ^0.4.18; along with this program. If not, see . */ -/// @title LPVault -/// @author Jordi Baylina - /// @dev This contract holds ether securely for liquid pledging systems; for /// this iteration the funds will come often be escaped to the Giveth Multisig /// (safety precaution), but once fully tested and optimized this contract will @@ -28,6 +25,7 @@ pragma solidity ^0.4.18; /// to allow for an optional escapeHatch to be implemented in case of issues; /// future versions of this contract will be enabled for tokens import "./EscapableApp.sol"; +import "giveth-common-contracts/contracts/ERC20.sol"; /// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract /// to confirm and cancel payments in the `LiquidPledging` contract. @@ -53,6 +51,7 @@ contract LPVault is EscapableApp { uint indexed idPayment, bytes32 indexed ref, address indexed dest, + address token, uint amount ); @@ -66,9 +65,10 @@ contract LPVault is EscapableApp { /// each payment the `ref` param makes it easy to track the movements of /// funds transparently by its connection to other `Payment` structs struct Payment { - PaymentStatus state; // Pending, Paid or Canceled bytes32 ref; // an input that references details from other contracts address dest; // recipient of the ETH + PaymentStatus state; // Pending, Paid or Canceled + address token; uint amount; // amount of ETH (in wei) to be sent } @@ -102,10 +102,6 @@ contract LPVault is EscapableApp { liquidPledging = ILiquidPledging(_liquidPledging); } - /// @dev The fall back function allows ETH to be deposited into the LPVault - /// through a simple send - function () public payable {} - /// @notice Used to decentralize, toggles whether the LPVault will /// automatically confirm a payment after the payment has been authorized /// @param _automatic If true, payments will confirm instantly, if false @@ -126,6 +122,7 @@ contract LPVault is EscapableApp { function authorizePayment( bytes32 _ref, address _dest, + address _token, uint _amount ) external authP(AUTHORIZE_PAYMENT_ROLE, arr(_dest, _amount)) returns (uint) { @@ -134,9 +131,10 @@ contract LPVault is EscapableApp { payments[idPayment].state = PaymentStatus.Pending; payments[idPayment].ref = _ref; payments[idPayment].dest = _dest; + payments[idPayment].token = _token; payments[idPayment].amount = _amount; - AuthorizePayment(idPayment, _ref, _dest, _amount); + AuthorizePayment(idPayment, _ref, _dest, _token, _amount); if (autoPay) { _doConfirmPayment(idPayment); @@ -177,20 +175,13 @@ contract LPVault is EscapableApp { } } - /// Transfer eth or tokens to the escapeHatchDestination. + /// Transfer tokens to the escapeHatchDestination. /// Used as a safety mechanism to prevent the vault from holding too much value /// before being thoroughly battle-tested. - /// @param _token to transfer, use 0x0 for ether + /// @param _token to transfer /// @param _amount to transfer function escapeFunds(address _token, uint _amount) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - /// @dev Logic for ether - if (_token == 0x0) { - require(this.balance >= _amount); - escapeHatchDestination.transfer(_amount); - EscapeHatchCalled(_token, _amount); - return; - } - /// @dev Logic for tokens + require(_token != 0x0); ERC20 token = ERC20(_token); uint balance = token.balanceOf(this); require(balance >= _amount); @@ -215,7 +206,8 @@ contract LPVault is EscapableApp { p.state = PaymentStatus.Paid; liquidPledging.confirmPayment(uint64(p.ref), p.amount); - p.dest.transfer(p.amount); // Transfers ETH denominated in wei + ERC20 token = ERC20(p.token); + require(token.transfer(p.dest, p.amount)); // Transfers token to dest ConfirmPayment(_idPayment, p.ref); } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 3e29641..577362d 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -27,19 +27,19 @@ import "./LiquidPledgingBase.sol"; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { - function addGiverAndDonate(uint64 idReceiver) - public payable + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public { - addGiverAndDonate(idReceiver, msg.sender); + addGiverAndDonate(idReceiver, msg.sender, token, amount); } - function addGiverAndDonate(uint64 idReceiver, address donorAddress) - public payable + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public { require(donorAddress != 0); // default to a 3 day (259200 seconds) commitTime uint64 idGiver = _addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver); + donate(idGiver, idReceiver, token, amount); } /// @notice This is how value enters the system and how pledges are created; @@ -50,19 +50,17 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idGiver The id of the Giver donating; if 0, a new id is created /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver) - public payable + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public { require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); - uint amount = msg.value; - require(amount > 0); - // Sends the `msg.value` (in wei) to the `vault` - // b/c the vault is a proxy, send & transfer will fail since they only provide 2300 - // gas, and the delegateProxy will sub(gas, 10000) before even making the call - require(vault.call.value(amount).gas(16000)()); + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( idGiver, @@ -70,6 +68,7 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, 0, + token, PledgeState.Pledged ); @@ -120,12 +119,13 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, p.oldPledge, + p.token, PledgeState.Paying ); _doTransfer(idPledge, idNewPledge, amount); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, amount); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); } /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState @@ -143,6 +143,7 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, p.oldPledge, + p.token, PledgeState.Paid ); @@ -165,6 +166,7 @@ contract LiquidPledging is LiquidPledgingBase { 0, 0, p.oldPledge, + p.token, PledgeState.Pledged ); @@ -177,7 +179,6 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) authP(PLEDGE_ADMIN_ROLE, arr(uint(idProject))) public { PledgeAdmin storage project = _findAdmin(idProject); - // _checkAdminOwner(project); project.canceled = true; CancelProject(idProject); diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 9634f30..e8bb4c9 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -122,6 +122,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins 0, 0, p.oldPledge, + p.token, PledgeState.Pledged ); uint64 toPledge = _findOrCreatePledge( @@ -130,6 +131,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins 0, 0, oldPledge, + p.token, PledgeState.Pledged ); _doTransfer(idPledge, toPledge, p.amount); @@ -186,6 +188,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins 0, 0, p.oldPledge, + p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); } else { @@ -203,7 +206,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins } } else { - // This should never be reached as the reciever.adminType + // This should never be reached as the receiver.adminType // should always be either a Giver, Project, or Delegate assert(false); } @@ -299,6 +302,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins 0, 0, p.oldPledge, + p.token, PledgeState.Pledged ); uint64 toPledge = _findOrCreatePledge( @@ -306,7 +310,8 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins new uint64[](0), // clear the delegation chain 0, 0, - uint64(oldPledge), + oldPledge, + p.token, PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); @@ -316,8 +321,8 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice `transferOwnershipToGiver` allows for the transfer of /// value back to the Giver, value is placed in a pledged state /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred /// @param idReceiver The new owner of the pledge function _transferOwnershipToGiver( uint64 idPledge, @@ -325,12 +330,15 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins uint64 idReceiver ) internal { + Pledge storage p = _findPledge(idPledge); + uint64 toPledge = _findOrCreatePledge( idReceiver, new uint64[](0), 0, 0, 0, + p.token, PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); @@ -366,6 +374,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins 0, 0, p.oldPledge, + p.token, PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); @@ -397,6 +406,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins 0, 0, p.oldPledge, + p.token, PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); @@ -426,6 +436,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins idReceiver, uint64(_getTime() + _maxCommitTime(p)), p.oldPledge, + p.token, PledgeState.Pledged ); _doTransfer(idPledge, toPledge, amount); @@ -520,6 +531,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins uint64 fromPledge, uint64 toPledge, uint64 context, + address token, uint amount ) internal returns (uint allowedAmount) { @@ -537,6 +549,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins fromPledge, toPledge, context, + token, amount ); require(newAmount <= allowedAmount); @@ -547,6 +560,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins fromPledge, toPledge, context, + token, amount ); } @@ -585,6 +599,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins fromPledge, toPledge, offset, + p.token, allowedAmount ); @@ -596,6 +611,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins fromPledge, toPledge, offset + i + 1, + p.token, allowedAmount ); } @@ -610,6 +626,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins fromPledge, toPledge, offset + 255, + p.token, allowedAmount ); } diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol index ad3e068..e979610 100644 --- a/contracts/LiquidPledgingStorage.sol +++ b/contracts/LiquidPledgingStorage.sol @@ -6,8 +6,7 @@ import "./ILiquidPledgingPlugin.sol"; /// the ETH that backs the Pledges, only after `LiquidPledging` authorizes /// payments can Pledges be converted for ETH interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, uint _amount) public; - function () public payable; + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; } /// This contract contains all state variables used in LiquidPledging contracts @@ -46,6 +45,7 @@ contract LiquidPledgingStorage { uint64 intendedProject; // Used when delegates are sending to projects uint64 commitTime; // When the intendedProject will become the owner uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; PledgeState pledgeState; // Pledged, Paying, Paid } diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index b83e29d..14c55db 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -52,6 +52,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { uint64 intendedProject, uint64 commitTime, uint64 oldPledge, + address token, PledgeState pledgeState ) { Pledge memory p = _findPledge(idPledge); @@ -61,6 +62,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { intendedProject = p.intendedProject; commitTime = p.commitTime; oldPledge = p.oldPledge; + token = p.token; pledgeState = p.pledgeState; } @@ -91,10 +93,11 @@ contract Pledges is AragonApp, LiquidPledgingStorage { uint64 intendedProject, uint64 commitTime, uint64 oldPledge, + address token, PledgeState state ) internal returns (uint64) { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, state); + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); uint64 id = hPledge2idx[hPledge]; if (id > 0) { return id; @@ -110,6 +113,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { intendedProject, commitTime, oldPledge, + token, state ) ); diff --git a/contracts/test/StandardToken.sol b/contracts/test/StandardToken.sol new file mode 100644 index 0000000..f35f03b --- /dev/null +++ b/contracts/test/StandardToken.sol @@ -0,0 +1,151 @@ +pragma solidity ^0.4.18; + +/** + * WARNING: This token is for testing purposes only + * and has been modified from the original version: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC20/StandardToken.sol + * + * @title Standard ERC20 token + * + * @dev Implementation of the basic standard token. + * @dev https://github.com/ethereum/EIPs/issues/20 + * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol + */ +contract StandardToken { + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); + + mapping (address => mapping (address => uint256)) internal allowed; + mapping(address => uint256) balances; + + uint256 totalSupply_; + address owner; + + function StandardToken() public { + owner = msg.sender; + } + + modifier onlyOwner() { + require(msg.sender == owner); + _; + } + + /** + * @dev total number of tokens in existence + */ + function totalSupply() public view returns (uint256) { + return totalSupply_; + } + + function mint(address _to, uint _value) public onlyOwner { + totalSupply_ += _value; + balances[_to] += _value; + Transfer(0, _to, _value); + } + + /** + * @dev transfer token for a specified address + * @param _to The address to transfer to. + * @param _value The amount to be transferred. + */ + function transfer(address _to, uint256 _value) public returns (bool) { + require(_to != address(0)); + require(_value <= balances[msg.sender]); + + // SafeMath.sub will throw if there is not enough balance. + balances[msg.sender] = balances[msg.sender] - _value; + balances[_to] = balances[_to] + _value; + Transfer(msg.sender, _to, _value); + return true; + } + + /** + * @dev Gets the balance of the specified address. + * @param _owner The address to query the the balance of. + * @return An uint256 representing the amount owned by the passed address. + */ + function balanceOf(address _owner) public view returns (uint256 balance) { + return balances[_owner]; + } + /** + * @dev Transfer tokens from one address to another + * @param _from address The address which you want to send tokens from + * @param _to address The address which you want to transfer to + * @param _value uint256 the amount of tokens to be transferred + */ + function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { + require(_to != address(0)); + require(_value <= balances[_from]); + require(_value <= allowed[_from][msg.sender]); + + balances[_from] = balances[_from] - _value; + balances[_to] = balances[_to] + _value; + allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value; + Transfer(_from, _to, _value); + return true; + } + + /** + * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. + * + * Beware that changing an allowance with this method brings the risk that someone may use both the old + * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this + * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * @param _spender The address which will spend the funds. + * @param _value The amount of tokens to be spent. + */ + function approve(address _spender, uint256 _value) public returns (bool) { + allowed[msg.sender][_spender] = _value; + Approval(msg.sender, _spender, _value); + return true; + } + + /** + * @dev Function to check the amount of tokens that an owner allowed to a spender. + * @param _owner address The address which owns the funds. + * @param _spender address The address which will spend the funds. + * @return A uint256 specifying the amount of tokens still available for the spender. + */ + function allowance(address _owner, address _spender) public view returns (uint256) { + return allowed[_owner][_spender]; + } + + /** + * @dev Increase the amount of tokens that an owner allowed to a spender. + * + * approve should be called when allowed[_spender] == 0. To increment + * allowed value is better to use this function to avoid 2 calls (and wait until + * the first transaction is mined) + * From MonolithDAO Token.sol + * @param _spender The address which will spend the funds. + * @param _addedValue The amount of tokens to increase the allowance by. + */ + function increaseApproval(address _spender, uint _addedValue) public returns (bool) { + allowed[msg.sender][_spender] = allowed[msg.sender][_spender] + _addedValue; + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; + } + + /** + * @dev Decrease the amount of tokens that an owner allowed to a spender. + * + * approve should be called when allowed[_spender] == 0. To decrement + * allowed value is better to use this function to avoid 2 calls (and wait until + * the first transaction is mined) + * From MonolithDAO Token.sol + * @param _spender The address which will spend the funds. + * @param _subtractedValue The amount of tokens to decrease the allowance by. + */ + function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { + uint oldValue = allowed[msg.sender][_spender]; + if (_subtractedValue > oldValue) { + allowed[msg.sender][_spender] = 0; + } else { + allowed[msg.sender][_spender] = oldValue - _subtractedValue; + } + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; + } + +} \ No newline at end of file diff --git a/js/liquidPledgingState.js b/js/liquidPledgingState.js index 63c7a1e..3c70093 100644 --- a/js/liquidPledgingState.js +++ b/js/liquidPledgingState.js @@ -12,6 +12,7 @@ class LiquidPledgingState { .then((res) => { pledge.amount = res.amount; pledge.owner = res.owner; + pledge.token = res.token; if (res.intendedProject) { pledge.intendedProject = res.intendedProject; @@ -68,12 +69,11 @@ class LiquidPledgingState { admin.name = res.name; admin.url = res.url; admin.commitTime = res.commitTime; - if (admin.adminType === 'Project') { + if (admin.type === 'Project') { admin.parentProject = res.parentProject; admin.canceled = res.canceled; } admin.plugin = res.plugin; - admin.canceled = res.canceled; return admin; }); } diff --git a/package.json b/package.json index 40ade2a..7b792bd 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "scripts": { "test": "npm run build; mocha --harmony", - "sol-compile": "solcpiler -i './contracts/+(LPVault|LPFactory|LiquidPledging|LiquidPledgingMock|TestSimpleProjectPlugin|TestSimpleProjectPluginFactory).sol' --solc-version v0.4.18+commit.9cf6e910", + "sol-compile": "solcpiler -i './contracts/{LPVault,LPFactory,LiquidPledging,LiquidPledgingMock,test/{TestSimpleProjectPluginFactory,StandardToken}}.sol' --solc-version v0.4.18+commit.9cf6e910", "js-compile": "babel -d lib/ js/", "build": "npm run sol-compile; npm run js-compile", "prepublish": "npm run build" diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index fc5a095..8340282 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -29,6 +29,7 @@ describe('LiquidPledging plugins test', function () { let giver1; let adminProject1; let adminDelegate1; + let token; before(async () => { testrpc = TestRPC.server({ @@ -64,6 +65,10 @@ describe('LiquidPledging plugins test', function () { liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); + + token = await contracts.StandardToken.new(web3); + await token.mint(giver1, web3.utils.toWei('1000')); + await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); }); it('Should create create giver with no plugin', async function () { diff --git a/test/CancelPledge.js b/test/CancelPledge.js index c6c83c9..c5fcdd3 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -26,6 +26,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { let giver1; let adminProject1; let adminProject2; + let token; before(async () => { testrpc = TestRPC.server({ @@ -61,11 +62,15 @@ describe('LiquidPledging cancelPledge normal scenario', function () { liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); + + token = await contracts.StandardToken.new(web3); + await token.mint(giver1, web3.utils.toWei('1000')); + await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); }); it('Should add project and donate ', async () => { await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, '0x0', { from: adminProject1 }); - await liquidPledging.addGiverAndDonate(1, { from: giver1, value: '1000' }); + await liquidPledging.addGiverAndDonate(1, token.$address, 1000, { from: giver1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 6d961f6..aafa544 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -29,6 +29,7 @@ describe('DelegationChain test', function () { let delegate2; let delegate3; let adminProject1; + let token; const gasUsage = {}; before(async () => { @@ -68,6 +69,10 @@ describe('DelegationChain test', function () { liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); + + token = await contracts.StandardToken.new(web3); + await token.mint(giver1, web3.utils.toWei('1000')); + await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); }); it('Should add pledgeAdmins', async () => { @@ -83,7 +88,7 @@ describe('DelegationChain test', function () { }); it('Should allow previous delegate to transfer pledge', async () => { - await liquidPledging.donate(1, 2, { from: giver1, value: 1000 }); + await liquidPledging.donate(1, 2, token.$address, 1000, { from: giver1 }); // add delegate2 to chain await liquidPledging.transfer(2, 2, 1000, 3, { from: delegate1 }); // delegate 1 transfer pledge back to self, thus undelegating delegate2 diff --git a/test/NormalOperation.js b/test/NormalOperation.js index ed1f5c6..25d821c 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -36,6 +36,8 @@ describe('LiquidPledging test', function () { let escapeHatchDestination; let escapeHatchCaller; let acl; + let giver1Token; + let giver2Token; before(async () => { testrpc = TestRPC.server({ @@ -86,6 +88,15 @@ describe('LiquidPledging test', function () { await acl.createPermission(accounts[0], vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), accounts[0], {$extraGas: 200000}); await acl.grantPermission(escapeHatchCaller, vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); await acl.revokePermission(accounts[0], vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); + + giver1Token = await contracts.StandardToken.new(web3); + giver2Token = await contracts.StandardToken.new(web3); + + await giver1Token.mint(giver1, web3.utils.toWei('1000')); + await giver2Token.mint(giver2, web3.utils.toWei('1000')); + + await giver1Token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", {from: giver1}); + await giver2Token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", {from: giver2}); }); it('Should create a giver', async () => { await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1, gas: 1000000 }); @@ -99,12 +110,16 @@ describe('LiquidPledging test', function () { assert.equal(res[4], 86400); }); it('Should make a donation', async () => { - const r = await liquidPledging.donate(1, 1, { from: giver1, value: utils.toWei('1'), gas: 1000000 }); + const r = await liquidPledging.donate(1, 1, giver1Token.$address, utils.toWei('1'), { from: giver1, $extraGas: 100000 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 1); const p = await liquidPledging.getPledge(1); assert.equal(p.amount, utils.toWei('1')); assert.equal(p.owner, 1); + const vaultBal = await giver1Token.balanceOf(vault.$address); + const giver1Bal = await giver1Token.balanceOf(giver1); + assert.equal(vaultBal, web3.utils.toWei('1')) + assert.equal(giver1Bal, web3.utils.toWei('999')) }); it('Should create a delegate', async () => { await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); @@ -165,27 +180,29 @@ describe('LiquidPledging test', function () { const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 3); const res3 = await liquidPledging.getPledge(3); - assert.equal(res3[0], utils.toWei('0.2')); - assert.equal(res3[1], 1); // Owner - assert.equal(res3[2], 1); // Delegates - assert.equal(res3[3], 3); // Proposed Project - assert.isAbove(utils.toDecimal(res3[4]), n + 86000); - assert.equal(res3[5], 0); // Old Node - assert.equal(res3[6], 0); // Not Paid + assert.equal(res3.amount, utils.toWei('0.2')); + assert.equal(res3.owner, 1); + assert.equal(res3.nDelegates, 1); + assert.equal(res3.intendedProject, 3); + assert.isAbove(utils.toDecimal(res3.commitTime), n + 86000); + assert.equal(res3.oldPledge, 0); + assert.equal(res3.token, giver1Token.$address); + assert.equal(res3.pledgeState, 0); // Not Paid }); it('Giver should change his mind and assign half of it to project2', async () => { await liquidPledging.transfer(1, 3, utils.toWei('0.1'), 4, { from: giver1 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 4); const res3 = await liquidPledging.getPledge(3); - assert.equal(res3[0], utils.toWei('0.1')); + assert.equal(res3.amount, utils.toWei('0.1')); const res4 = await liquidPledging.getPledge(4); - assert.equal(res4[1], 4); // Owner - assert.equal(res4[2], 0); // Delegates - assert.equal(res4[3], 0); // Proposed Project - assert.equal(res4[4], 0); - assert.equal(res4[5], 2); // Old Node - assert.equal(res4[6], 0); // Not Paid + assert.equal(res4.owner, 4); + assert.equal(res4.nDelegates, 0); + assert.equal(res4.intendedProject, 0); + assert.equal(res4.commitTime, 0); + assert.equal(res4.oldPledge, 2); + assert.equal(res4.token, giver1Token.$address); + assert.equal(res4.pledgeState, 0); // Not Paid }); it('After the time, the project1 should be able to spend part of it', async () => { const n = Math.floor(new Date().getTime() / 1000); @@ -194,27 +211,29 @@ describe('LiquidPledging test', function () { const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 6); const res5 = await liquidPledging.getPledge(5); - assert.equal(res5[0], utils.toWei('0.05')); - assert.equal(res5[1], 3); // Owner - assert.equal(res5[2], 0); // Delegates - assert.equal(res5[3], 0); // Proposed Project - assert.equal(res5[4], 0); // commit time - assert.equal(res5[5], 2); // Old Node - assert.equal(res5[6], 0); // Not Paid + assert.equal(res5.amount, utils.toWei('0.05')); + assert.equal(res5.owner, 3); + assert.equal(res5.nDelegates, 0); + assert.equal(res5.intendedProject, 0); + assert.equal(res5.commitTime, 0); + assert.equal(res5.oldPledge, 2); + assert.equal(res5.token, giver1Token.$address); + assert.equal(res5.pledgeState, 0); // Not Paid const res6 = await liquidPledging.getPledge(6); - assert.equal(res6[0], utils.toWei('0.05')); - assert.equal(res6[1], 3); // Owner - assert.equal(res6[2], 0); // Delegates - assert.equal(res6[3], 0); // Proposed Project - assert.equal(res6[4], 0); // commit time - assert.equal(res6[5], 2); // Old Node - assert.equal(res6[6], 1); // Peinding paid Paid + assert.equal(res6.amount, utils.toWei('0.05')); + assert.equal(res6.owner, 3); + assert.equal(res6.nDelegates, 0); + assert.equal(res6.intendedProject, 0); + assert.equal(res6.commitTime, 0); + assert.equal(res6.oldPledge, 2); + assert.equal(res6.token, giver1Token.$address); + assert.equal(res6.pledgeState, 1); // Pending }); - it('Should collect the Ether', async () => { - const initialBalance = await web3.eth.getBalance(adminProject1); + it('Should collect the token', async () => { + const initialBalance = await giver1Token.balanceOf(adminProject1); await vault.confirmPayment(0, {$extraGas: 200000}); - const finalBalance = await web3.eth.getBalance(adminProject1); + const finalBalance = await giver1Token.balanceOf(adminProject1); const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); @@ -223,13 +242,14 @@ describe('LiquidPledging test', function () { const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 7); const res7 = await liquidPledging.getPledge(7); - assert.equal(res7[0], utils.toWei('0.05')); - assert.equal(res7[1], 3); // Owner - assert.equal(res7[2], 0); // Delegates - assert.equal(res7[3], 0); // Proposed Project - assert.equal(res7[4], 0); // commit time - assert.equal(res7[5], 2); // Old pledge - assert.equal(res7[6], 2); // Peinding paid Paid + assert.equal(res7.amount, utils.toWei('0.05')); + assert.equal(res7.owner, 3); + assert.equal(res7.nDelegates, 0); + assert.equal(res7.intendedProject, 0); + assert.equal(res7.commitTime, 0); + assert.equal(res7.oldPledge, 2); + assert.equal(res7.token, giver1Token.$address); + assert.equal(res7.pledgeState, 2); // Pending }); it('Admin of the project1 should be able to cancel project1', async () => { await liquidPledging.cancelProject(3, { from: adminProject1, $extraGas: 100000 }); @@ -243,7 +263,7 @@ describe('LiquidPledging test', function () { await assertFail( liquidPledging.withdraw(5, utils.toWei('0.01'), { from: adminProject1, gas: 4000000 }) ); - }); + }); it('Delegate should send part of this ETH to project2', async () => { await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, {from: delegate1, $extraGas: 100000}); const st = await liquidPledgingState.getState(liquidPledging); @@ -324,10 +344,10 @@ describe('LiquidPledging test', function () { await liquidPledging.mWithdraw(encodedPledges, { from: giver1, $extraGas: 200000 }); - const initialBalance = await web3.eth.getBalance(giver1); + const initialBalance = await giver1Token.balanceOf(giver1); await vault.multiConfirm([2, 3, 4, 5, 6], {$extraGas: 200000}); - const finalBalance = await web3.eth.getBalance(giver1); + const finalBalance = await giver1Token.balanceOf(giver1); const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); assert.equal(collected, 0.95); @@ -335,9 +355,9 @@ describe('LiquidPledging test', function () { it('Should make a donation and create giver', async () => { const oldNPledges = await liquidPledging.numberOfPledges(); const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.addGiverAndDonate(1, { from: giver2, value: utils.toWei('1'), $extraGas: 200000 }); + await liquidPledging.addGiverAndDonate(1, giver2Token.$address, utils.toWei('1'), { from: giver2, $extraGas: 200000 }); const nPledges = await liquidPledging.numberOfPledges(); - assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 1); + assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 2); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(utils.toDecimal(nAdmins), utils.toDecimal(oldNAdmins) + 1); const res = await liquidPledging.getPledgeAdmin(nAdmins); @@ -346,6 +366,8 @@ describe('LiquidPledging test', function () { assert.equal(res[2], ''); assert.equal(res[3], ''); assert.equal(res[4], 259200); // default to 3 day commitTime + const giver2Bal = await giver2Token.balanceOf(giver2); + assert.equal(giver2Bal, utils.toWei('999')); }); it('Should allow childProject with different parentProject owner', async () => { const nAdminsBefore = await liquidPledging.numberOfPledgeAdmins(); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index beef5b9..61a6856 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -28,6 +28,7 @@ describe('NormalizePledge test', function () { let delegate2; let adminProject1; let adminProject2; + let token; before(async () => { testrpc = TestRPC.server({ @@ -66,6 +67,12 @@ describe('NormalizePledge test', function () { liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); + + token = await contracts.StandardToken.new(web3); + await token.mint(giver1, web3.utils.toWei('1000')); + await token.mint(giver2, web3.utils.toWei('1000')); + await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); + await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver2 }); }); it('Should add pledgeAdmins', async () => { @@ -82,11 +89,11 @@ describe('NormalizePledge test', function () { it('Should commit pledges if commitTime has passed', async () => { // commitTime 259200 - await liquidPledging.donate(1, 2, { from: giver1, value: 1000 }); + await liquidPledging.donate(1, 2, token.$address, 1000, { from: giver1 }); // commitTime 86400 - await liquidPledging.donate(1, 3, { from: giver1, value: 1000 }); + await liquidPledging.donate(1, 3, token.$address, 1000, { from: giver1 }); // commitTime 0 - await liquidPledging.donate(6, 3, { from: giver2, value: 1000 }); + await liquidPledging.donate(6, 3, token.$address, 1000, { from: giver2 }); // set the time const now = Math.floor(new Date().getTime() / 1000); diff --git a/test/Vault.js b/test/Vault.js index cd15a24..7c4ecef 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -24,6 +24,7 @@ describe('Vault test', function () { let giver1; let adminProject1; let restrictedPaymentsConfirmer; + let token; before(async () => { testrpc = TestRPC.server({ @@ -76,12 +77,16 @@ describe('Vault test', function () { const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); + + token = await contracts.StandardToken.new(web3); + await token.mint(giver1, web3.utils.toWei('1000')); + await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", {from: giver1}); }); it('Should hold funds from liquidPledging', async function () { - await liquidPledging.addGiverAndDonate(2, { from: giver1, value: 10000, $extraGas: 100000 }); + await liquidPledging.addGiverAndDonate(2, token.$address, 10000, { from: giver1, $extraGas: 100000 }); - const balance = await web3.eth.getBalance(vault.$address); + const balance = await token.balanceOf(vault.$address); assert.equal(10000, balance); }); @@ -94,19 +99,21 @@ describe('Vault test', function () { }); it('escapeFunds should send funds to escapeHatchDestination', async function () { - const preBalance = await web3.eth.getBalance(escapeHatchDestination); + const preBalance = await token.balanceOf(escapeHatchDestination); - await vault.escapeFunds(0x0, 1000, { from: escapeHatchCaller, $extraGas: 200000 }); + assertFail(vault.escapeFunds(0x0, 1000, { from: escapeHatchCaller, gas: 1000000})); - const vaultBalance = await web3.eth.getBalance(vault.$address); + await vault.escapeFunds(token.$address, 1000, { from: escapeHatchCaller, $extraGas: 200000 }); + + const vaultBalance = await token.balanceOf(vault.$address); assert.equal(9000, vaultBalance); const expected = web3.utils.toBN(preBalance).add(web3.utils.toBN('1000')).toString(); - const postBalance = await web3.eth.getBalance(escapeHatchDestination); + const postBalance = await token.balanceOf(escapeHatchDestination); assert.equal(expected, postBalance); - await web3.eth.sendTransaction({from: escapeHatchCaller, to: vault.$address, value: '1000', gas: 21000}); + await token.transfer(vault.$address, 1000, {from: escapeHatchDestination, $extraGas: 200000}); }); it('should restrict confirm payment to payments under specified amount', async function () { From d481898ab1cfd737eea7ca1e313caf253e04cd23 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 20 Feb 2018 08:12:01 -0800 Subject: [PATCH 33/52] add DONOR_ROLE --- contracts/LPFactory.sol | 2 + contracts/LPVault.sol | 14 ++----- contracts/LiquidPledging.sol | 5 ++- contracts/LiquidPledgingACLHelpers.sol | 21 ++++++++++ contracts/LiquidPledgingPlugins.sol | 14 ++----- contracts/PledgeAdmins.sol | 56 ++++++++++++++++++++++++-- test/NormalOperation.js | 7 +++- 7 files changed, 90 insertions(+), 29 deletions(-) create mode 100644 contracts/LiquidPledgingACLHelpers.sol diff --git a/contracts/LPFactory.sol b/contracts/LPFactory.sol index d7df7ff..9b57b9b 100644 --- a/contracts/LPFactory.sol +++ b/contracts/LPFactory.sol @@ -43,6 +43,7 @@ contract LPFactory is DAOFactory { bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); bytes32 authPaymentRole = v.AUTHORIZE_PAYMENT_ROLE(); bytes32 pledgeAdminRole = lp.PLEDGE_ADMIN_ROLE(); + bytes32 donorRole = lp.DONOR_ROLE(); bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); acl.createPermission(_root, address(v), hatchCallerRole, _root); @@ -50,6 +51,7 @@ contract LPFactory is DAOFactory { acl.createPermission(_root, address(lp), pluginManagerRole, _root); acl.createPermission(address(lp), address(v), authPaymentRole, _root); acl.createPermission(0x0, address(lp), pledgeAdminRole, address(lp)); + acl.createPermission(0x0, address(lp), donorRole, address(lp)); // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways acl.grantPermission(_root, address(kernel), appManagerRole); diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index 7c95200..08776d8 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -25,6 +25,7 @@ pragma solidity ^0.4.18; /// to allow for an optional escapeHatch to be implemented in case of issues; /// future versions of this contract will be enabled for tokens import "./EscapableApp.sol"; +import "./LiquidPledgingACLHelpers.sol"; import "giveth-common-contracts/contracts/ERC20.sol"; /// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract @@ -36,7 +37,7 @@ contract ILiquidPledging { /// @dev `LPVault` is a higher level contract built off of the `Escapable` /// contract that holds funds for the liquid pledging system. -contract LPVault is EscapableApp { +contract LPVault is EscapableApp, LiquidPledgingACLHelpers { bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); @@ -107,7 +108,7 @@ contract LPVault is EscapableApp { /// @param _automatic If true, payments will confirm instantly, if false /// the training wheels are put on and the owner must manually approve /// every payment - function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, _arr(_automatic)) { + function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) { autoPay = _automatic; AutoPaySet(autoPay); } @@ -225,13 +226,4 @@ contract LPVault is EscapableApp { CancelPayment(_idPayment, p.ref); } - - function _arr(bool a) internal pure returns (uint256[] r) { - r = new uint256[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } } diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index 577362d..ed0c1fc 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -27,6 +27,7 @@ import "./LiquidPledgingBase.sol"; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public { @@ -38,7 +39,7 @@ contract LiquidPledging is LiquidPledgingBase { { require(donorAddress != 0); // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = _addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); donate(idGiver, idReceiver, token, amount); } @@ -51,7 +52,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public + public authP(DONOR_ROLE, arr(idGiver, idReceiver, token, amount, msg.sender)) { require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer require(amount > 0); diff --git a/contracts/LiquidPledgingACLHelpers.sol b/contracts/LiquidPledgingACLHelpers.sol new file mode 100644 index 0000000..b91f7ac --- /dev/null +++ b/contracts/LiquidPledgingACLHelpers.sol @@ -0,0 +1,21 @@ +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} \ No newline at end of file diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index 0916b92..764a4b6 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -21,8 +21,9 @@ pragma solidity ^0.4.18; import "@aragon/os/contracts/apps/AragonApp.sol"; import "./LiquidPledgingStorage.sol"; +import "./LiquidPledgingACLHelpers.sol"; -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage { +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); @@ -40,7 +41,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage { pluginWhitelist[contractHash] = false; } - function useWhitelist(bool useWhitelist) external authP(PLUGIN_MANAGER_ROLE, _arr(useWhitelist)) { + function useWhitelist(bool useWhitelist) external authP(PLUGIN_MANAGER_ROLE, arr(useWhitelist)) { whitelistDisabled = !useWhitelist; } @@ -68,13 +69,4 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage { } return keccak256(o_code); } - - function _arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } } \ No newline at end of file diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 09ff9b6..c120353 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -24,7 +24,11 @@ import "@aragon/os/contracts/acl/ACL.sol"; contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + // NOTE: PLEDGE_ADMIN_ROLE assumes that the 1st param passed to the authP modifier + // is the idAdmin. This is critical to prevent unauthorized access bytes32 constant public PLEDGE_ADMIN_ROLE = keccak256("PLEDGE_ADMIN_ROLE"); + bytes32 constant public DONOR_ROLE = keccak256("DONOR_ROLE"); + address constant public ANY_ENTITY = address(-1); // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_SUBPROJECT_LEVEL = 20; @@ -57,7 +61,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { ILiquidPledgingPlugin plugin ) public returns (uint64 idGiver) { - return _addGiver( + return addGiver( msg.sender, name, url, @@ -66,7 +70,8 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { ); } - function _addGiver( + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( address addr, string name, string url, @@ -91,6 +96,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); + // TODO: do we want to grant permission accept donations as a giver? maybe from self only? _grantPledgeAdminPermission(msg.sender, idGiver); if (address(plugin) != 0) { _grantPledgeAdminPermission(address(plugin), idGiver); @@ -159,6 +165,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); + _grantAnyDonorPermission(idDelegate); _grantPledgeAdminPermission(msg.sender, idDelegate); if (address(plugin) != 0) { _grantPledgeAdminPermission(address(plugin), idDelegate); @@ -239,6 +246,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); + _grantAnyDonorPermission(idProject); _grantPledgeAdminPermission(projectAdmin, idProject); if (address(plugin) != 0) { _grantPledgeAdminPermission(address(plugin), idProject); @@ -277,6 +285,32 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { ProjectUpdated(idProject); } + function grantPledgeAdminPermission(uint64 idAdmin, address _who, uint[] _params) public authP(PLEDGE_ADMIN_ROLE, arr(uint(idAdmin), 0, 1)) { + uint[] memory params; + + // if params are passed, we need to add a AND logic statement as the first param + // which limits the permission to the given idAdmin. This is to prevent granting + // PledgeAdminPermission to a idAdmin that msg.sender is not an admin to + // idAdmin (on msg call) == idAdmin AND _params + if (_params.length > 0) { + params = new uint[](_params.length + 2); + // paramId: 204 (LOGIC) op: AND(8) val: 1 (param index) & 2 (param index) + params[0] = uint(bytes32(204 << 8 * 31) | bytes32(8 << 8 * 30) | bytes32(2 << 8 * 4) | bytes32(1)); + // paramId: 0 op: EQ(1) val: idAdmin + params[1] = uint(bytes32(1 << 8 * 30) | idAdmin); + + for (uint64 i = 0; i < _params.length; i++) { + params[i + 2] = _params[i]; + } + } else { + params = new uint[](1); + // paramId: 0 op: EQ(1) val: idAdmin + params[0] = uint(bytes32(1 << 8 * 30) | idAdmin); + } + + ACL(kernel.acl()).grantPermissionP(_who, address(this), PLEDGE_ADMIN_ROLE, _params); + } + ///////////////////////////// // Public constant functions @@ -374,13 +408,27 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { return _getProjectLevel(parent) + 1; } - function _grantPledgeAdminPermission(address _who, uint64 idPledge) internal { + function _grantPledgeAdminPermission(address _who, uint64 idAdmin) internal { bytes32 id; - assembly { id := idPledge } + assembly { id := idAdmin } uint[] memory params = new uint[](1); + // paramId: 0 op: EQ(1) val: idAdmin params[0] = uint(bytes32(1 << 8 * 30) | id); + // grant _who the PLEDGE_ADMIN_ROLE for idAdmin ACL(kernel.acl()).grantPermissionP(_who, address(this), PLEDGE_ADMIN_ROLE, params); } + + function _grantAnyDonorPermission(uint64 idAdmin) internal { + bytes32 id; + assembly { id := idAdmin } + + uint[] memory params = new uint[](1); + // paramId: 1 op: EQ(1) val: idAdmin + params[0] = uint(bytes32(1 << 8 * 31) | bytes32(1 << 8 * 30) | id); + + // grant ANY_ENTITY permission to donate to idAdmin + ACL(kernel.acl()).grantPermissionP(ANY_ENTITY, address(this), DONOR_ROLE, params); + } } \ No newline at end of file diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 25d821c..6cc0c9c 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -68,7 +68,7 @@ describe('LiquidPledging test', function () { it('Should deploy LiquidPledging contract', async () => { const baseVault = await contracts.LPVault.new(web3); - const baseLP = await contracts.LiquidPledgingMock.new(web3); + const baseLP = await contracts.LiquidPledgingMock.new(web3, {gas: 6700000}); lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], escapeHatchDestination); @@ -100,6 +100,11 @@ describe('LiquidPledging test', function () { }); it('Should create a giver', async () => { await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1, gas: 1000000 }); + + // grant permission to giver1 to receive donations. This is not done by default in liquidPledging, + // but the test cases use this. + await acl.grantPermissionP(await liquidPledging.ANY_ENTITY(), liquidPledging.$address, await liquidPledging.DONOR_ROLE(), ["0x101000000000000000000000000000000000000000000000000000000000000"], {$extraGas: 200000}); + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 1); const res = await liquidPledging.getPledgeAdmin(1); From ab0f8aa62f7529e58be7dc1ca61c89634100f8f5 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 20 Feb 2018 09:38:13 -0800 Subject: [PATCH 34/52] remove PLEDGE_ADMIN_ROLE and DONOR_ROLE w/ current ACL implementation, these roles will not work for us. ACL limits only 1 set of params for a given (_who, _entity, _role), but a single address may control multiple PledgeAdmins. --- contracts/LPFactory.sol | 4 -- contracts/LiquidPledging.sol | 16 +++--- contracts/LiquidPledgingBase.sol | 8 +++ contracts/LiquidPledgingPlugins.sol | 2 +- contracts/LiquidPledgingStorage.sol | 5 -- contracts/PledgeAdmins.sol | 87 +++-------------------------- test/NormalOperation.js | 4 -- 7 files changed, 24 insertions(+), 102 deletions(-) diff --git a/contracts/LPFactory.sol b/contracts/LPFactory.sol index 9b57b9b..ab94a2b 100644 --- a/contracts/LPFactory.sol +++ b/contracts/LPFactory.sol @@ -42,16 +42,12 @@ contract LPFactory is DAOFactory { bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); bytes32 authPaymentRole = v.AUTHORIZE_PAYMENT_ROLE(); - bytes32 pledgeAdminRole = lp.PLEDGE_ADMIN_ROLE(); - bytes32 donorRole = lp.DONOR_ROLE(); bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); acl.createPermission(_root, address(v), hatchCallerRole, _root); acl.createPermission(_root, address(lp), hatchCallerRole, _root); acl.createPermission(_root, address(lp), pluginManagerRole, _root); acl.createPermission(address(lp), address(v), authPaymentRole, _root); - acl.createPermission(0x0, address(lp), pledgeAdminRole, address(lp)); - acl.createPermission(0x0, address(lp), donorRole, address(lp)); // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways acl.grantPermission(_root, address(kernel), appManagerRole); diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index ed0c1fc..f2eafc9 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -52,7 +52,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public authP(DONOR_ROLE, arr(idGiver, idReceiver, token, amount, msg.sender)) + public { require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer require(amount > 0); @@ -95,8 +95,9 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idPledge, uint amount, uint64 idReceiver - ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idSender), amount)) public + ) public { + checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -110,9 +111,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - - PledgeAdmin storage owner = _findAdmin(p.owner); - require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(p.owner)))); + checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -126,6 +125,7 @@ contract LiquidPledging is LiquidPledgingBase { _doTransfer(idPledge, idNewPledge, amount); + PledgeAdmin storage owner = _findAdmin(p.owner); vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); } @@ -178,8 +178,9 @@ contract LiquidPledging is LiquidPledgingBase { /// @notice Changes the `project.canceled` flag to `true`; cannot be undone /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) authP(PLEDGE_ADMIN_ROLE, arr(uint(idProject))) public { + function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); + checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -195,8 +196,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - - require(canPerform(msg.sender, PLEDGE_ADMIN_ROLE, arr(uint(p.owner)))); + checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index e8bb4c9..01882a9 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -151,6 +151,14 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins // Internal methods //////////////////// + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + function _transfer( uint64 idSender, uint64 idPledge, diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index 764a4b6..25dccce 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -41,7 +41,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginWhitelist[contractHash] = false; } - function useWhitelist(bool useWhitelist) external authP(PLUGIN_MANAGER_ROLE, arr(useWhitelist)) { + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { whitelistDisabled = !useWhitelist; } diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol index e979610..244b7d3 100644 --- a/contracts/LiquidPledgingStorage.sol +++ b/contracts/LiquidPledgingStorage.sol @@ -21,11 +21,6 @@ contract LiquidPledgingStorage { /// and can own pledges and act as delegates struct PledgeAdmin { PledgeAdminType adminType; // Giver, Delegate or Project - // TODO: this is interesting... - // it is possible to revoke permission for this addr to be able to - // manage this pledgeAdmin. So we are storing the addr, which may or may not - // have permission to manage this PledgeAdmin. Maybe we need a custom - // ACL which provides a reverse lookup of addys granted a permission address addr; // Account or contract address for admin uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto uint64 parentProject; // Only for projects diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index c120353..e04e5c4 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -20,16 +20,9 @@ pragma solidity ^0.4.18; */ import "./LiquidPledgingPlugins.sol"; import "@aragon/os/contracts/apps/AragonApp.sol"; -import "@aragon/os/contracts/acl/ACL.sol"; contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - // NOTE: PLEDGE_ADMIN_ROLE assumes that the 1st param passed to the authP modifier - // is the idAdmin. This is critical to prevent unauthorized access - bytes32 constant public PLEDGE_ADMIN_ROLE = keccak256("PLEDGE_ADMIN_ROLE"); - bytes32 constant public DONOR_ROLE = keccak256("DONOR_ROLE"); - address constant public ANY_ENTITY = address(-1); - // Limits inserted to prevent large loops that could prevent canceling uint constant MAX_SUBPROJECT_LEVEL = 20; uint constant MAX_INTERPROJECT_LEVEL = 20; @@ -87,7 +80,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { admins.push( PledgeAdmin( PledgeAdminType.Giver, - addr, // TODO: is this needed? Yes, until aragon has an easy way to see who has permissions + addr, commitTime, 0, false, @@ -96,12 +89,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - // TODO: do we want to grant permission accept donations as a giver? maybe from self only? - _grantPledgeAdminPermission(msg.sender, idGiver); - if (address(plugin) != 0) { - _grantPledgeAdminPermission(address(plugin), idGiver); - } - GiverAdded(idGiver); } @@ -120,9 +107,10 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idGiver))) public + ) public { PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver giver.addr = newAddr; giver.name = newName; @@ -165,12 +153,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - _grantAnyDonorPermission(idDelegate); - _grantPledgeAdminPermission(msg.sender, idDelegate); - if (address(plugin) != 0) { - _grantPledgeAdminPermission(address(plugin), idDelegate); - } - DelegateAdded(idDelegate); } @@ -191,9 +173,10 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idDelegate))) public + ) public { PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); require(delegate.adminType == PledgeAdminType.Delegate); delegate.addr = newAddr; delegate.name = newName; @@ -246,12 +229,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - _grantAnyDonorPermission(idProject); - _grantPledgeAdminPermission(projectAdmin, idProject); - if (address(plugin) != 0) { - _grantPledgeAdminPermission(address(plugin), idProject); - } - ProjectAdded(idProject); } @@ -271,10 +248,11 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) authP(PLEDGE_ADMIN_ROLE, arr(uint(idProject))) public + ) public { PledgeAdmin storage project = _findAdmin(idProject); + require(msg.sender == project.addr); require(project.adminType == PledgeAdminType.Project); project.addr = newAddr; @@ -285,33 +263,6 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { ProjectUpdated(idProject); } - function grantPledgeAdminPermission(uint64 idAdmin, address _who, uint[] _params) public authP(PLEDGE_ADMIN_ROLE, arr(uint(idAdmin), 0, 1)) { - uint[] memory params; - - // if params are passed, we need to add a AND logic statement as the first param - // which limits the permission to the given idAdmin. This is to prevent granting - // PledgeAdminPermission to a idAdmin that msg.sender is not an admin to - // idAdmin (on msg call) == idAdmin AND _params - if (_params.length > 0) { - params = new uint[](_params.length + 2); - // paramId: 204 (LOGIC) op: AND(8) val: 1 (param index) & 2 (param index) - params[0] = uint(bytes32(204 << 8 * 31) | bytes32(8 << 8 * 30) | bytes32(2 << 8 * 4) | bytes32(1)); - // paramId: 0 op: EQ(1) val: idAdmin - params[1] = uint(bytes32(1 << 8 * 30) | idAdmin); - - for (uint64 i = 0; i < _params.length; i++) { - params[i + 2] = _params[i]; - } - } else { - params = new uint[](1); - // paramId: 0 op: EQ(1) val: idAdmin - params[0] = uint(bytes32(1 << 8 * 30) | idAdmin); - } - - ACL(kernel.acl()).grantPermissionP(_who, address(this), PLEDGE_ADMIN_ROLE, _params); - } - - ///////////////////////////// // Public constant functions ///////////////////////////// @@ -407,28 +358,4 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { PledgeAdmin storage parent = _findAdmin(a.parentProject); return _getProjectLevel(parent) + 1; } - - function _grantPledgeAdminPermission(address _who, uint64 idAdmin) internal { - bytes32 id; - assembly { id := idAdmin } - - uint[] memory params = new uint[](1); - // paramId: 0 op: EQ(1) val: idAdmin - params[0] = uint(bytes32(1 << 8 * 30) | id); - - // grant _who the PLEDGE_ADMIN_ROLE for idAdmin - ACL(kernel.acl()).grantPermissionP(_who, address(this), PLEDGE_ADMIN_ROLE, params); - } - - function _grantAnyDonorPermission(uint64 idAdmin) internal { - bytes32 id; - assembly { id := idAdmin } - - uint[] memory params = new uint[](1); - // paramId: 1 op: EQ(1) val: idAdmin - params[0] = uint(bytes32(1 << 8 * 31) | bytes32(1 << 8 * 30) | id); - - // grant ANY_ENTITY permission to donate to idAdmin - ACL(kernel.acl()).grantPermissionP(ANY_ENTITY, address(this), DONOR_ROLE, params); - } } \ No newline at end of file diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 6cc0c9c..041f397 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -101,10 +101,6 @@ describe('LiquidPledging test', function () { it('Should create a giver', async () => { await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1, gas: 1000000 }); - // grant permission to giver1 to receive donations. This is not done by default in liquidPledging, - // but the test cases use this. - await acl.grantPermissionP(await liquidPledging.ANY_ENTITY(), liquidPledging.$address, await liquidPledging.DONOR_ROLE(), ["0x101000000000000000000000000000000000000000000000000000000000000"], {$extraGas: 200000}); - const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 1); const res = await liquidPledging.getPledgeAdmin(1); From 0f5c9738ed0757c943d013d5b63b9e8e8d283cf0 Mon Sep 17 00:00:00 2001 From: perissology Date: Sat, 24 Feb 2018 07:36:09 -0800 Subject: [PATCH 35/52] add a pluginInstanceWhitelist to register proxied plugins --- contracts/LPFactory.sol | 3 + contracts/LiquidPledgingBase.sol | 14 +- contracts/LiquidPledgingPlugins.sol | 28 +- contracts/LiquidPledgingStorage.sol | 5 +- contracts/PledgeAdmins.sol | 31 +- test/AdminPlugins.js | 2 +- yarn.lock | 5804 +++++++++++++++++++++++++++ 7 files changed, 5855 insertions(+), 32 deletions(-) create mode 100644 yarn.lock diff --git a/contracts/LPFactory.sol b/contracts/LPFactory.sol index ab94a2b..a7d93db 100644 --- a/contracts/LPFactory.sol +++ b/contracts/LPFactory.sol @@ -34,6 +34,9 @@ contract LPFactory is DAOFactory { v.initialize(address(lp), _escapeHatchDestination); lp.initialize(address(v), _escapeHatchDestination); + // register the lp instance w/ the kernel + kernel.setApp(kernel.APP_ADDR_NAMESPACE(), LP_APP_ID, address(lp)); + _setPermissions(_root, acl, kernel, v, lp); } diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 01882a9..5db6592 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -155,7 +155,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked function checkAdminOwner(uint64 idAdmin) internal constant { - PledgeAdmin a = _findAdmin(idAdmin); + PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -302,7 +302,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins // Ensure that the pledge is not already at max pledge depth // and the project has not been canceled require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!_isProjectCanceled(idReceiver)); + require(!isProjectCanceled(idReceiver)); uint64 oldPledge = _findOrCreatePledge( p.owner, @@ -436,7 +436,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins Pledge storage p = _findPledge(idPledge); require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!_isProjectCanceled(idReceiver)); + require(!isProjectCanceled(idReceiver)); uint64 toPledge = _findOrCreatePledge( p.owner, @@ -452,9 +452,9 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice `doTransfer` is designed to allow for pledge amounts to be /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transfered. - /// @param to This is the id of the pledge that value will be transfered to. - /// @param _amount The amount of value that will be transfered. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. function _doTransfer(uint64 from, uint64 to, uint _amount) internal { uint amount = _callPlugins(true, from, to, _amount); if (from == to) { @@ -512,7 +512,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins } assert(admin.adminType == PledgeAdminType.Project); - if (!_isProjectCanceled(p.owner)) { + if (!isProjectCanceled(p.owner)) { return idPledge; } diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index 25dccce..4c00554 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -27,18 +27,26 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPlugin(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginWhitelist[contractHash] = true; + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; } - function addValidPlugins(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPlugin(contractHashes[i]); + addValidPluginContract(contractHashes[i]); } } - function removeValidPlugin(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginWhitelist[contractHash] = false; + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; } function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { @@ -50,9 +58,15 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi return true; } + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code bytes32 contractHash = getCodeHash(addr); - return pluginWhitelist[contractHash]; + return pluginContractWhitelist[contractHash]; } function getCodeHash(address addr) public view returns(bytes32) { diff --git a/contracts/LiquidPledgingStorage.sol b/contracts/LiquidPledgingStorage.sol index 244b7d3..5817fbb 100644 --- a/contracts/LiquidPledgingStorage.sol +++ b/contracts/LiquidPledgingStorage.sol @@ -50,7 +50,10 @@ contract LiquidPledgingStorage { /// index number by the hash of that pledge mapping (bytes32 => uint64) hPledge2idx; - mapping (bytes32 => bool) pluginWhitelist; + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; bool public whitelistDisabled = false; ILPVault public vault; diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index e04e5c4..6372c78 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -307,24 +307,11 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { plugin = address(a.plugin); } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - /// @notice A getter to find if a specified Project has been canceled /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled - function _isProjectCanceled(uint64 projectId) - internal constant returns (bool) + function isProjectCanceled(uint64 projectId) + public constant returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -341,7 +328,19 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { return false; } - return _isProjectCanceled(a.parentProject); + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; } /// @notice Find the level of authority a specific Project has diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index 8340282..3c9988a 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -99,7 +99,7 @@ describe('LiquidPledging plugins test', function () { it('Should deploy TestSimpleProjectPlugin and add project', async function () { // add plugin as valid plugin const codeHash = web3.utils.soliditySha3(simpleProjectPluginRuntimeByteCode); - await liquidPledging.addValidPlugin(codeHash, { $extraGas: 200000 }); + await liquidPledging.addValidPluginContract(codeHash, { $extraGas: 200000 }); // deploy new plugin const factoryContract = await new web3.eth.Contract(simpleProjectPluginFactoryAbi) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..e38915f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,5804 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aragon/os@3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@aragon/os/-/os-3.0.1.tgz#b300f10cfdca5b43464eb6d58208705cc2c52cf0" + +"@babel/code-frame@7.0.0-beta.40", "@babel/code-frame@^7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz#37e2b0cf7c56026b4b21d3927cadf81adec32ac6" + dependencies: + "@babel/highlight" "7.0.0-beta.40" + +"@babel/generator@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.40.tgz#ab61f9556f4f71dbd1138949c795bb9a21e302ea" + dependencies: + "@babel/types" "7.0.0-beta.40" + jsesc "^2.5.1" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-function-name@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.40.tgz#9d033341ab16517f40d43a73f2d81fc431ccd7b6" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.40" + "@babel/template" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.40" + +"@babel/helper-get-function-arity@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.40.tgz#ac0419cf067b0ec16453e1274f03878195791c6e" + dependencies: + "@babel/types" "7.0.0-beta.40" + +"@babel/highlight@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.40.tgz#b43d67d76bf46e1d10d227f68cddcd263786b255" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/template@7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.40.tgz#034988c6424eb5c3268fe6a608626de1f4410fc8" + dependencies: + "@babel/code-frame" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.40" + babylon "7.0.0-beta.40" + lodash "^4.2.0" + +"@babel/traverse@^7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.40.tgz#d140e449b2e093ef9fe1a2eecc28421ffb4e521e" + dependencies: + "@babel/code-frame" "7.0.0-beta.40" + "@babel/generator" "7.0.0-beta.40" + "@babel/helper-function-name" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.40" + babylon "7.0.0-beta.40" + debug "^3.0.1" + globals "^11.1.0" + invariant "^2.2.0" + lodash "^4.2.0" + +"@babel/types@7.0.0-beta.40", "@babel/types@^7.0.0-beta.40": + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.40.tgz#25c3d7aae14126abe05fcb098c65a66b6d6b8c14" + dependencies: + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^2.0.0" + +JSONStream@^1.0.4: + version "1.3.2" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@~1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + +ajv-keywords@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e" + dependencies: + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +any-promise@^1.0.0, any-promise@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +app-root-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argv@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" + +aria-query@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" + dependencies: + ast-types-flow "0.0.7" + commander "^2.11.0" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +ast-types-flow@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +async@^1.4.0, async@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.1.2, async@^2.4.0, async@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +axobject-query@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" + dependencies: + ast-types-flow "0.0.7" + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-eslint@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" + +babel-eslint@^8.0.1: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.2.tgz#1102273354c6f0b29b4ea28a65f97d122296b68b" + dependencies: + "@babel/code-frame" "^7.0.0-beta.40" + "@babel/traverse" "^7.0.0-beta.40" + "@babel/types" "^7.0.0-beta.40" + babylon "^7.0.0-beta.40" + eslint-scope "~3.7.1" + eslint-visitor-keys "^1.0.0" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@7.0.0-beta.40, babylon@^7.0.0-beta.40: + version "7.0.0-beta.40" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.40.tgz#91fc8cd56d5eb98b28e6fde41045f2957779940a" + +babylon@^6.17.0, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" + +base64-js@^1.0.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +bignumber.js@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +bl@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + dependencies: + readable-stream "^2.0.5" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.3.1.tgz#f97ae1970f41d85177283053e9a120160e66c61d" + +bluebird@^2.9.34: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + +bluebird@^3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.6, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +body-parser@1.18.2, body-parser@^1.16.0: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sha3@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.1.tgz#3ff34a3006ef15c0fb3567e541b91a2340123d11" + dependencies: + js-sha3 "^0.3.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserslist@^2.1.2: + version "2.11.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + dependencies: + caniuse-lite "^1.0.30000792" + electron-to-chromium "^1.3.30" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^3.0.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" + dependencies: + base64-js "0.0.8" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.0.5: + version "5.1.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz#c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-lite@^1.0.30000792: + version "1.0.30000810" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz#47585fffce0e9f3593a6feea4673b945424351d9" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chai@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" + dependencies: + ansi-styles "^3.2.0" + escape-string-regexp "^1.0.5" + supports-color "^5.2.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +check-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +ci-info@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" + +cmd-shim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +codecov@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-2.3.1.tgz#7dda945cd58a1f6081025b5b03ee01a2ef20f86e" + dependencies: + argv "0.0.2" + request "2.77.0" + urlgrey "0.4.4" + +color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +colors@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +command-join@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" + +commander@2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.11.0, commander@^2.8.1, commander@^2.9.0: + version "2.14.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + +commander@~2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +compare-func@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.2.tgz#99dd0ba457e1f9bc722b12c08ec33eeab31fa648" + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.10: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +conventional-changelog-angular@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.5.tgz#936249e897501affdffc6043da45cab59d6f0907" + dependencies: + compare-func "^1.3.1" + q "^1.4.1" + +conventional-changelog-atom@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.3.tgz#117d024e5cf9e28dcbd0575981105395be1bca74" + dependencies: + q "^1.4.1" + +conventional-changelog-cli@^1.3.13: + version "1.3.14" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.14.tgz#2560f640929baf97bb65457f77a12a57d5322852" + dependencies: + add-stream "^1.0.0" + conventional-changelog "^1.1.16" + lodash "^4.1.0" + meow "^3.7.0" + tempfile "^1.1.1" + +conventional-changelog-codemirror@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.3.tgz#e1ec78e77e7fe26a2bd18e32f02523527916a07b" + dependencies: + q "^1.4.1" + +conventional-changelog-core@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.4.tgz#bbc476109c6b28ba6328b0b417f5ab5bfc7ca28a" + dependencies: + conventional-changelog-writer "^3.0.3" + conventional-commits-parser "^2.1.4" + dateformat "^1.0.12" + get-pkg-repo "^1.0.0" + git-raw-commits "^1.3.3" + git-remote-origin-url "^2.0.0" + git-semver-tags "^1.3.3" + lodash "^4.0.0" + normalize-package-data "^2.3.5" + q "^1.4.1" + read-pkg "^1.1.0" + read-pkg-up "^1.0.1" + through2 "^2.0.0" + +conventional-changelog-ember@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.5.tgz#db9a23f01103c6a0446ed2077ed5c87656d0571a" + dependencies: + q "^1.4.1" + +conventional-changelog-eslint@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.3.tgz#023002a3f776266c501e4d4def7b0bb24130f29d" + dependencies: + q "^1.4.1" + +conventional-changelog-express@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.3.tgz#25aef42a30b5457f97681a94f2ac9b0ee515484a" + dependencies: + q "^1.4.1" + +conventional-changelog-jquery@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" + dependencies: + q "^1.4.1" + +conventional-changelog-jscs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" + dependencies: + q "^1.4.1" + +conventional-changelog-jshint@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.3.tgz#28b6fe4d41fb945f38c6c31cd195fe37594f0007" + dependencies: + compare-func "^1.3.1" + q "^1.4.1" + +conventional-changelog-preset-loader@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.5.tgz#d5af525d7ad81179d9b54137284d74d665997fa7" + +conventional-changelog-writer@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.3.tgz#2faa65739370769639fff1c0008722162936d46c" + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^1.1.4" + dateformat "^1.0.11" + handlebars "^4.0.2" + json-stringify-safe "^5.0.1" + lodash "^4.0.0" + meow "^3.3.0" + semver "^5.0.1" + split "^1.0.0" + through2 "^2.0.0" + +conventional-changelog@^1.1.16: + version "1.1.16" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.16.tgz#fa78386c831f5b1ae45f60391ef015c2a4a400b9" + dependencies: + conventional-changelog-angular "^1.6.5" + conventional-changelog-atom "^0.2.3" + conventional-changelog-codemirror "^0.3.3" + conventional-changelog-core "^2.0.4" + conventional-changelog-ember "^0.3.5" + conventional-changelog-eslint "^1.0.3" + conventional-changelog-express "^0.3.3" + conventional-changelog-jquery "^0.1.0" + conventional-changelog-jscs "^0.1.0" + conventional-changelog-jshint "^0.3.3" + conventional-changelog-preset-loader "^1.1.5" + +conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.4.tgz#8b5be3979c372e4f7440180d5c655a94ac5a134a" + dependencies: + is-subset "^0.1.1" + modify-values "^1.0.0" + +conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.4.tgz#86d2c21029268d99543c4ebda37d76fe5c44d8d1" + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.0" + lodash "^4.2.1" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375" + dependencies: + concat-stream "^1.4.10" + conventional-commits-filter "^1.1.1" + conventional-commits-parser "^2.1.1" + git-raw-commits "^1.3.0" + git-semver-tags "^1.3.0" + meow "^3.3.0" + object-assign "^4.0.1" + +convert-source-map@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cors@^2.8.1: + version "2.8.4" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" + dependencies: + object-assign "^4" + vary "^1" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + +crypto-browserify@^3.11.0, crypto-browserify@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-js@^3.1.4: + version "3.1.8" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +damerau-levenshtein@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" + +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + dependencies: + number-is-nan "^1.0.0" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^1.0.11, dateformat@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + dependencies: + mimic-response "^1.0.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d" + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +diff@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +electron-to-chromium@^1.3.30: + version "1.3.33" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz#bf00703d62a7c65238136578c352d6c5c042a545" + +elliptic@^6.0.0, elliptic@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^6.1.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +errno@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.7.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.39" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.39.tgz#fca21b67559277ca4ac1a1ed7048b107b6f76d87" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-airbnb-base@^11.3.0: + version "11.3.2" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a" + dependencies: + eslint-restricted-globals "^0.1.1" + +eslint-config-airbnb@^15.0.1: + version "15.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-15.1.0.tgz#fd432965a906e30139001ba830f58f73aeddae8e" + dependencies: + eslint-config-airbnb-base "^11.3.0" + +eslint-import-resolver-node@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" + dependencies: + debug "^2.6.8" + pkg-dir "^1.0.0" + +eslint-plugin-import@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-jsx-a11y@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz#54583d1ae442483162e040e13cc31865465100e5" + dependencies: + aria-query "^0.7.0" + array-includes "^3.0.3" + ast-types-flow "0.0.7" + axobject-query "^0.1.0" + damerau-levenshtein "^1.0.0" + emoji-regex "^6.1.0" + jsx-ast-utils "^2.0.0" + +eslint-plugin-react@^7.1.0: + version "7.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" + dependencies: + doctrine "^2.0.2" + has "^1.0.1" + jsx-ast-utils "^2.0.1" + prop-types "^15.6.0" + +eslint-restricted-globals@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + +eslint-scope@~3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +eth-contract-class@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/eth-contract-class/-/eth-contract-class-0.0.6.tgz#398b8952149cc747cb959fa8b5d480288c7a8bce" + dependencies: + web3-core-promievent "^1.0.0-beta.21" + +eth-contract-class@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/eth-contract-class/-/eth-contract-class-0.0.7.tgz#d3c46341a2255fb046165f2d763e28d1d040581e" + dependencies: + web3-core-promievent "^1.0.0-beta.21" + +eth-lib@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26, eth-lib@^0.1.27: + version "0.1.27" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.27.tgz#f0b0fd144f865d2d6bf8257a40004f2e75ca1dd6" + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + keccakjs "^0.2.1" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.1.1.tgz#47786bdaa087caf7b1b75e73abc5c7d540158cd0" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.14.0: + version "4.16.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" + dependencies: + accepts "~1.3.4" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.0" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.2" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@~3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fbjs@^0.8.16: + version "0.8.16" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + +file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +for-each@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" + dependencies: + is-function "~1.0.0" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^2.0.0, fs-extra@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + +fs-extra@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-promise@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fs-promise/-/fs-promise-2.0.3.tgz#f64e4f854bcf689aa8bddcba268916db3db46854" + dependencies: + any-promise "^1.3.0" + fs-extra "^2.0.0" + mz "^2.6.0" + thenify-all "^1.6.0" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2, fstream@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +ganache-cli@^7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-7.0.0-beta.0.tgz#9454567d731bd8f0b582e40473f2f44a16f109b3" + dependencies: + source-map-support "^0.5.0" + webpack "^3.10.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-port@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +git-raw-commits@^1.3.0, git-raw-commits@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.3.tgz#464f9aa14c4e78235e98654f0da467f3702590f9" + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^3.3.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^1.3.0, git-semver-tags@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.3.tgz#0b0416c43285adfdc93a8038ea25502a09319245" + dependencies: + meow "^3.3.0" + semver "^5.0.1" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + dependencies: + ini "^1.3.2" + +giveth-common-contracts@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/giveth-common-contracts/-/giveth-common-contracts-0.4.0.tgz#fb742e305d779640bf8be1de7e84503429dd7016" + dependencies: + babel-eslint "^8.0.1" + codecov "^2.3.0" + jsonfile "^3.0.1" + solium "^0.5.5" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.2, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^11.1.0: + version "11.3.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +got@7.1.0, got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growl@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + +handlebars@^4.0.2: + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-symbol-support-x@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz#66ec2e377e0c7d7ccedb07a3a84d77510ff1bc4c" + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + dependencies: + has-symbol-support-x "^1.4.1" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoek@4.x.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +http-errors@1.6.2, http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.2, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inquirer@^3.2.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +interpret@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + +invariant@^2.2.0, invariant@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ipaddr.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-ci@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@^1.0.1, is-function@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + +is-my-json-valid@^2.12.4: + version "2.17.2" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-text-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + dependencies: + text-extensions "^1.0.0" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +js-sha3@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.3.1.tgz#86122802142f0828502a0d1dee1d95e253bb0243" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-parse-better-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^2.0.0, jsx-ast-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" + dependencies: + array-includes "^3.0.3" + +keccakjs@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.1.tgz#1d633af907ef305bbf9f2fa616d56c44561dfa4d" + dependencies: + browserify-sha3 "^0.0.1" + sha3 "^1.1.0" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +lerna@^2.2.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.9.0.tgz#303f70bc50b1c4541bdcf54eda13c36fe54401f3" + dependencies: + async "^1.5.0" + chalk "^2.1.0" + cmd-shim "^2.0.2" + columnify "^1.5.4" + command-join "^2.0.0" + conventional-changelog-cli "^1.3.13" + conventional-recommended-bump "^1.2.1" + dedent "^0.7.0" + execa "^0.8.0" + find-up "^2.1.0" + fs-extra "^4.0.1" + get-port "^3.2.0" + glob "^7.1.2" + glob-parent "^3.1.0" + globby "^6.1.0" + graceful-fs "^4.1.11" + hosted-git-info "^2.5.0" + inquirer "^3.2.2" + is-ci "^1.0.10" + load-json-file "^4.0.0" + lodash "^4.17.4" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-finally "^1.0.0" + package-json "^4.0.1" + path-exists "^3.0.0" + read-cmd-shim "^1.0.1" + read-pkg "^3.0.0" + rimraf "^2.6.1" + safe-buffer "^5.1.1" + semver "^5.4.1" + signal-exit "^3.0.2" + slash "^1.0.0" + strong-log-transformer "^1.0.6" + temp-write "^3.3.0" + write-file-atomic "^2.3.0" + write-json-file "^2.2.0" + write-pkg "^3.1.0" + yargs "^8.0.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash.assign@^4.0.3, lodash.assign@^4.0.6: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.template@^4.0.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + dependencies: + lodash._reinterpolate "~3.0.0" + +lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.14.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" + dependencies: + pify "^3.0.0" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + +meow@^3.3.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +mimic-response@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + +minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^3.5.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +mocha@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" + dependencies: + browser-stdout "1.3.0" + commander "2.11.0" + debug "3.1.0" + diff "3.3.1" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.3" + he "1.1.1" + mkdirp "0.5.1" + supports-color "4.4.0" + +mock-fs@^4.1.0: + version "4.4.2" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.4.2.tgz#09dec5313f97095a450be6aa2ad8ab6738d63d6b" + +modify-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + +moment@^2.6.0: + version "2.20.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" + +mout@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +mz@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.0.5, nan@^2.0.8, nan@^2.3.0, nan@^2.3.3: + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-uuid@~1.4.7: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +oboe@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.3.tgz#2b4865dbd46be81225713f4e9bfe4bcf4f680a4f" + dependencies: + http-https "^1.0.0" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +package-json@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-headers@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536" + dependencies: + for-each "^0.3.2" + trim "0.0.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pbkdf2@^3.0.3: + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pegjs@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, private@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +prop-types@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +proxy-addr@~2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.6.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.4.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~6.3.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +query-string@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.0.tgz#9583b15fd1307f899e973ed418886426a9976469" + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +random-bytes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +randomhex@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: + version "1.2.5" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-cmd-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + dependencies: + graceful-fs "^4.1.2" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0, read-pkg@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@2.77.0: + version "2.77.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.77.0.tgz#2b00d82030ededcc97089ffa5d8810a9c2aa314b" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + node-uuid "~1.4.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@^2.79.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +resolve@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +scrypt.js@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada" + dependencies: + scrypt "^6.0.2" + scryptsy "^1.2.1" + +scrypt@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/scrypt/-/scrypt-6.0.3.tgz#04e014a5682b53fa50c2d5cce167d719c06d870d" + dependencies: + nan "^2.0.8" + +scryptsy@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-1.2.1.tgz#a3225fa4b2524f802700761e2855bdf3b2d92163" + dependencies: + pbkdf2 "^3.0.3" + +seek-bzip@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" + dependencies: + commander "~2.8.1" + +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +send@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" + dependencies: + debug "2.6.9" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-static@1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.1" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.10" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha3@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.0.tgz#6989f1b70a498705876a373e2c62ace96aa9399a" + dependencies: + nan "^2.0.5" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + +simple-get@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.7.0.tgz#ad37f926d08129237ff08c4f2edfd6f10e0380b5" + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + +sol-digger@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/sol-digger/-/sol-digger-0.0.2.tgz#406c4a9d31e269e7f88eb1c2ea101318e5e09025" + +sol-explore@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/sol-explore/-/sol-explore-1.6.2.tgz#43ae8c419fd3ac056a05f8a9d1fb1022cd41ecc2" + +solc@^0.4.19: + version "0.4.20" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.20.tgz#1f8dd0b830cfe0064092d3a135dcaf2af1896009" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + +solcpiler@^0.0.15: + version "0.0.15" + resolved "https://registry.yarnpkg.com/solcpiler/-/solcpiler-0.0.15.tgz#fee98c24937fca0eb602f8d6d99683c7d8bc2e87" + dependencies: + app-root-path "^2.0.1" + async "^2.5.0" + eth-contract-class "0.0.7" + glob "^7.1.2" + lodash "^4.17.4" + solc "^0.4.19" + web3 "^0.19.1" + yargs "^8.0.2" + +solium@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/solium/-/solium-0.5.5.tgz#420ae5c0709d00c19430158418bb8264bdac66aa" + dependencies: + chokidar "^1.6.0" + colors "^1.1.2" + commander "^2.9.0" + lodash "^4.14.2" + sol-digger "0.0.2" + sol-explore "^1.6.1" + solparse "^1.2.2" + +solparse@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/solparse/-/solparse-1.4.2.tgz#243c328d18f71544d32a455b679a1ee61e7e771c" + dependencies: + mocha "^4.0.1" + pegjs "^0.10.0" + yargs "^10.0.3" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" + dependencies: + source-map "^0.6.0" + +source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + dependencies: + through2 "^2.0.2" + +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + dependencies: + through "2" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +"statuses@>= 1.3.1 < 2": + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.7.2: + version "2.8.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.3" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + dependencies: + is-natural-number "^4.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + dependencies: + is-hex-prefixed "1.0.0" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +strong-log-transformer@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz#f7fb93758a69a571140181277eea0c2eb1301fa3" + dependencies: + byline "^5.0.0" + duplexer "^0.1.1" + minimist "^0.1.0" + moment "^2.6.0" + through "^2.3.4" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +supports-color@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + +supports-color@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a" + dependencies: + has-flag "^3.0.0" + +swarm-js@0.1.37: + version "0.1.37" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.37.tgz#27d485317a340bbeec40292af783cc10acfa4663" + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + decompress "^4.0.0" + eth-lib "^0.1.26" + fs-extra "^2.1.2" + fs-promise "^2.0.0" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar.gz "^1.0.5" + xhr-request-promise "^0.1.2" + +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar-stream@^1.5.2: + version "1.5.5" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55" + dependencies: + bl "^1.0.0" + end-of-stream "^1.0.0" + readable-stream "^2.0.0" + xtend "^4.0.0" + +tar.gz@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/tar.gz/-/tar.gz-1.0.7.tgz#577ef2c595faaa73452ef0415fed41113212257b" + dependencies: + bluebird "^2.9.34" + commander "^2.8.1" + fstream "^1.0.8" + mout "^0.11.0" + tar "^2.1.1" + +tar@^2.1.1, tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + +temp-write@^3.3.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^3.0.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + +tempfile@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + dependencies: + os-tmpdir "^1.0.0" + uuid "^2.0.1" + +text-extensions@^1.0.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" + +thenify-all@^1.0.0, thenify-all@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + dependencies: + any-promise "^1.0.0" + +through2@^2.0.0, through2@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +timers-browserify@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + dependencies: + setimmediate "^1.0.4" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-detect@^4.0.0: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +type-is@~1.6.15: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +typedarray-to-buffer@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz#1017b32d984ff556eba100f501589aba1ace2e04" + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@^0.7.9: + version "0.7.17" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" + +uglify-js@^2.6, uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + +unbzip2-stream@^1.0.9: + version "1.2.5" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47" + dependencies: + buffer "^3.0.1" + through "^2.3.6" + +underscore@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urlgrey@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +utf8@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.1.tgz#2e01db02f7d8d0944f77104f1609eb0c304cf768" + +utf8@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + +web3-bzz@^1.0.0-beta.22: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.30.tgz#2434da183c239aaaa5c013f62307429ea91dd706" + dependencies: + got "7.1.0" + swarm-js "0.1.37" + underscore "1.8.3" + +web3-core-helpers@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.30.tgz#a000cee3f0a09eea13d74b5730335d4635fe1f2f" + dependencies: + underscore "1.8.3" + web3-eth-iban "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-core-method@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.30.tgz#8dd6ff789e8d1563b8786d13a78c7facefae471c" + dependencies: + underscore "1.8.3" + web3-core-helpers "1.0.0-beta.30" + web3-core-promievent "1.0.0-beta.30" + web3-core-subscriptions "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-core-promievent@1.0.0-beta.30, web3-core-promievent@^1.0.0-beta.21: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.30.tgz#6205192bfb097441132226a5939ec5aed3a8a291" + dependencies: + bluebird "3.3.1" + eventemitter3 "1.1.1" + +web3-core-requestmanager@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.30.tgz#6ee56fb8a6cb85fd01b3080854f50d64e52240c6" + dependencies: + underscore "1.8.3" + web3-core-helpers "1.0.0-beta.30" + web3-providers-http "1.0.0-beta.30" + web3-providers-ipc "1.0.0-beta.30" + web3-providers-ws "1.0.0-beta.30" + +web3-core-subscriptions@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.30.tgz#31652c75356c3f67e5a19cd14b8d314bad4e2127" + dependencies: + eventemitter3 "1.1.1" + underscore "1.8.3" + web3-core-helpers "1.0.0-beta.30" + +web3-core@1.0.0-beta.30, web3-core@^1.0.0-beta.24: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.30.tgz#f75f4d3b85be74c7674637921c3e013bc5d27679" + dependencies: + web3-core-helpers "1.0.0-beta.30" + web3-core-method "1.0.0-beta.30" + web3-core-requestmanager "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-eth-abi@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.30.tgz#6ea52c999a8505b47c2f88ba61d2a680a1066409" + dependencies: + bn.js "4.11.6" + underscore "1.8.3" + web3-core-helpers "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-eth-accounts@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.30.tgz#8f0a1b342c4283812372242a6e2df268887b3b70" + dependencies: + bluebird "3.3.1" + crypto-browserify "^3.12.0" + eth-lib "0.2.7" + scrypt.js "0.2.0" + underscore "1.8.3" + uuid "2.0.1" + web3-core "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.30" + web3-core-method "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-eth-contract@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.30.tgz#d7eba2385084dff3c75aac48235af2c8d2d6a258" + dependencies: + underscore "1.8.3" + web3-core "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.30" + web3-core-method "1.0.0-beta.30" + web3-core-promievent "1.0.0-beta.30" + web3-core-subscriptions "1.0.0-beta.30" + web3-eth-abi "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-eth-iban@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.30.tgz#3b080a5c4da1fa37477b17e4c900781b92150645" + dependencies: + bn.js "^4.11.6" + web3-utils "1.0.0-beta.30" + +web3-eth-personal@1.0.0-beta.30, web3-eth-personal@^1.0.0-beta.24: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.30.tgz#8bd4ef40b3b5f841dd3a8b97873d9dc791caf748" + dependencies: + web3-core "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.30" + web3-core-method "1.0.0-beta.30" + web3-net "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-eth@^1.0.0-beta.24: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.30.tgz#029b15e14cb608b9cfe02603b504d651870f0501" + dependencies: + underscore "1.8.3" + web3-core "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.30" + web3-core-method "1.0.0-beta.30" + web3-core-subscriptions "1.0.0-beta.30" + web3-eth-abi "1.0.0-beta.30" + web3-eth-accounts "1.0.0-beta.30" + web3-eth-contract "1.0.0-beta.30" + web3-eth-iban "1.0.0-beta.30" + web3-eth-personal "1.0.0-beta.30" + web3-net "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-net@1.0.0-beta.30, web3-net@^1.0.0-beta.24: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.30.tgz#0a352ede296e6d4b7f88b67aa474e49703de73bf" + dependencies: + web3-core "1.0.0-beta.30" + web3-core-method "1.0.0-beta.30" + web3-utils "1.0.0-beta.30" + +web3-providers-http@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.0.0-beta.30.tgz#cda8d9133c6f31d1a812dc5a42af00cbea98cd86" + dependencies: + web3-core-helpers "1.0.0-beta.30" + xhr2 "0.1.4" + +web3-providers-ipc@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.30.tgz#ee2d8d18a3f120b777044a56e67e0aee20854587" + dependencies: + oboe "2.1.3" + underscore "1.8.3" + web3-core-helpers "1.0.0-beta.30" + +web3-providers-ws@1.0.0-beta.30: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.30.tgz#9ae69a9ead8a8761f86379fa347b6db5ae44b12d" + dependencies: + underscore "1.8.3" + web3-core-helpers "1.0.0-beta.30" + websocket "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + +web3-shh@^1.0.0-beta.24: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.30.tgz#2bfe3220d958ff4ca592017790852bc57b7b0ca7" + dependencies: + web3-core "1.0.0-beta.30" + web3-core-method "1.0.0-beta.30" + web3-core-subscriptions "1.0.0-beta.30" + web3-net "1.0.0-beta.30" + +web3-utils@1.0.0-beta.30, web3-utils@^1.0.0-beta.24: + version "1.0.0-beta.30" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.30.tgz#eae408cc8d6d6fecc8d5097cfead51773f231ff9" + dependencies: + bn.js "4.11.6" + eth-lib "^0.1.27" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randomhex "0.1.5" + underscore "1.8.3" + utf8 "2.1.1" + +web3@1.0.0-beta.24: + version "1.0.0-beta.24" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.24.tgz#0b653d6a50f407b37f593371fb6ee1bd3a1f27c2" + dependencies: + web3-bzz "^1.0.0-beta.22" + web3-core "^1.0.0-beta.24" + web3-eth "^1.0.0-beta.24" + web3-eth-personal "^1.0.0-beta.24" + web3-net "^1.0.0-beta.24" + web3-shh "^1.0.0-beta.24" + web3-utils "^1.0.0-beta.24" + +web3@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/web3/-/web3-0.19.1.tgz#e763d5b1107c4bc24abd4f8cbee1ba3659e6eb31" + dependencies: + bignumber.js "^4.0.2" + crypto-js "^3.1.4" + utf8 "^2.1.1" + xhr2 "*" + xmlhttprequest "*" + +webpack-sources@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +"websocket@git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible": + version "1.0.24" + resolved "git://github.com/frozeman/WebSocket-Node.git#7004c39c42ac98875ab61126e5b4a925430f592c" + dependencies: + debug "^2.2.0" + nan "^2.3.3" + typedarray-to-buffer "^3.1.2" + yaeti "^0.0.6" + +whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-json-file@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write-pkg@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.1.0.tgz#030a9994cc9993d25b4e75a9f1a1923607291ce9" + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +xhr-request-promise@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz#343c44d1ee7726b8648069682d0f840c83b4261d" + dependencies: + xhr-request "^1.0.1" + +xhr-request@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2@*, xhr2@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.4.1" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.4.1.tgz#ba982cced205ae5eec387169ac9dc77ca4853d38" + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xmlhttprequest@*: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs-parser@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + dependencies: + camelcase "^4.1.0" + +yargs@^10.0.3: + version "10.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^8.1.0" + +yargs@^4.7.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.1" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.1" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@^2.4.2: + version "2.9.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.0.1" From 371fc582f8b1563238f20b9578424efda3323e8c Mon Sep 17 00:00:00 2001 From: perissology Date: Sat, 24 Feb 2018 10:01:14 -0800 Subject: [PATCH 36/52] add LPFactory to index.js --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index 790e712..eeb9b76 100644 --- a/index.js +++ b/index.js @@ -2,3 +2,4 @@ const contracts = require('./build/contracts'); exports.LiquidPledging = contracts.LiquidPledging; exports.LiquidPledgingState = require('./lib/liquidPledgingState.js'); exports.LPVault = contracts.LPVault; +exports.LPFactory = contracts.LPFactory; From c5e874e245b6ea0e3d1519189943c36702a4fcbb Mon Sep 17 00:00:00 2001 From: perissology Date: Mon, 12 Mar 2018 08:51:16 -0700 Subject: [PATCH 37/52] seperate LPConstants --- contracts/LPConstants.sol | 8 ++++++++ contracts/LPFactory.sol | 6 ++---- index.js | 4 ++++ package.json | 4 ++-- 4 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 contracts/LPConstants.sol diff --git a/contracts/LPConstants.sol b/contracts/LPConstants.sol new file mode 100644 index 0000000..5fb529d --- /dev/null +++ b/contracts/LPConstants.sol @@ -0,0 +1,8 @@ +pragma solidity ^0.4.18; + +import "@aragon/os/contracts/kernel/KernelStorage.sol"; + +contract LPConstants is KernelConstants { + bytes32 constant public VAULT_APP_ID = keccak256("vault"); + bytes32 constant public LP_APP_ID = keccak256("liquidPledging"); +} \ No newline at end of file diff --git a/contracts/LPFactory.sol b/contracts/LPFactory.sol index a7d93db..342d087 100644 --- a/contracts/LPFactory.sol +++ b/contracts/LPFactory.sol @@ -3,14 +3,12 @@ pragma solidity ^0.4.18; import "@aragon/os/contracts/factory/DAOFactory.sol"; import "./LPVault.sol"; import "./LiquidPledging.sol"; +import "./LPConstants.sol"; -contract LPFactory is DAOFactory { +contract LPFactory is LPConstants, DAOFactory { address public vaultBase; address public lpBase; - bytes32 constant public VAULT_APP_ID = keccak256("vault"); - bytes32 constant public LP_APP_ID = keccak256("liquidPledging"); - event DeployVault(address vault); event DeployLiquidPledging(address liquidPledging); diff --git a/index.js b/index.js index eeb9b76..3d753d2 100644 --- a/index.js +++ b/index.js @@ -3,3 +3,7 @@ exports.LiquidPledging = contracts.LiquidPledging; exports.LiquidPledgingState = require('./lib/liquidPledgingState.js'); exports.LPVault = contracts.LPVault; exports.LPFactory = contracts.LPFactory; +exports.test = { + StandardTokenTest: contracts.StandardToken, + assertFail: require('./test/helpers/assertFail') +}; diff --git a/package.json b/package.json index 7b792bd..8fb1fa2 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "scripts": { "test": "npm run build; mocha --harmony", - "sol-compile": "solcpiler -i './contracts/{LPVault,LPFactory,LiquidPledging,LiquidPledgingMock,test/{TestSimpleProjectPluginFactory,StandardToken}}.sol' --solc-version v0.4.18+commit.9cf6e910", + "sol-compile": "solcpiler --solc-version v0.4.18+commit.9cf6e910", "js-compile": "babel -d lib/ js/", "build": "npm run sol-compile; npm run js-compile", "prepublish": "npm run build" @@ -44,7 +44,7 @@ "lerna": "^2.2.0", "mocha": "^3.5.0", "random-bytes": "^1.0.0", - "solcpiler": "^0.0.15", + "solcpiler": "https://github.com/perissology/solcpiler.git#b60ac51b", "web3": "1.0.0-beta.24" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", From bc3219ccc4f3fd298f6d3d66f0d67697f4a34b46 Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 16 Mar 2018 07:21:38 -0700 Subject: [PATCH 38/52] add build files --- .gitignore | 1 - build/EscapableApp.sol.js | 57 + build/EscapableApp_all.sol | 570 + build/ILiquidPledgingPlugin.sol.js | 7 + build/ILiquidPledgingPlugin_all.sol | 87 + build/LPConstants.sol.js | 14 + build/LPConstants_all.sol | 35 + build/LPFactory.sol.js | 180 + build/LPFactory_all.sol | 3718 +++++ build/LPVault.sol.js | 68 + build/LPVault_all.sol | 827 + build/LiquidPledging.sol.js | 92 + build/LiquidPledgingACLHelpers.sol.js | 7 + build/LiquidPledgingACLHelpers_all.sol | 25 + build/LiquidPledgingBase.sol.js | 88 + build/LiquidPledgingBase_all.sol | 2054 +++ build/LiquidPledgingMock.sol.js | 131 + build/LiquidPledgingMock_all.sol | 2754 ++++ build/LiquidPledgingPlugins.sol.js | 68 + build/LiquidPledgingPlugins_all.sol | 709 + build/LiquidPledgingStorage.sol.js | 14 + build/LiquidPledgingStorage_all.sol | 156 + build/LiquidPledging_all.sol | 2347 +++ build/PledgeAdmins.sol.js | 72 + build/PledgeAdmins_all.sol | 1072 ++ build/Pledges.sol.js | 64 + build/Pledges_all.sol | 757 + build/StandardToken.sol.js | 7 + build/StandardToken_all.sol | 155 + build/TestSimpleDelegatePlugin.sol.js | 99 + build/TestSimpleDelegatePlugin_all.sol | 2418 +++ build/TestSimpleProjectPlugin.sol.js | 96 + build/TestSimpleProjectPluginFactory.sol.js | 100 + build/TestSimpleProjectPluginFactory_all.sol | 2426 +++ build/TestSimpleProjectPlugin_all.sol | 2403 +++ build/contracts.js | 20 + build/solcStandardInput.json | 26 + build/solcStandardOutput.json | 14127 +++++++++++++++++ 38 files changed, 37850 insertions(+), 1 deletion(-) create mode 100644 build/EscapableApp.sol.js create mode 100644 build/EscapableApp_all.sol create mode 100644 build/ILiquidPledgingPlugin.sol.js create mode 100644 build/ILiquidPledgingPlugin_all.sol create mode 100644 build/LPConstants.sol.js create mode 100644 build/LPConstants_all.sol create mode 100644 build/LPFactory.sol.js create mode 100644 build/LPFactory_all.sol create mode 100644 build/LPVault.sol.js create mode 100644 build/LPVault_all.sol create mode 100644 build/LiquidPledging.sol.js create mode 100644 build/LiquidPledgingACLHelpers.sol.js create mode 100644 build/LiquidPledgingACLHelpers_all.sol create mode 100644 build/LiquidPledgingBase.sol.js create mode 100644 build/LiquidPledgingBase_all.sol create mode 100644 build/LiquidPledgingMock.sol.js create mode 100644 build/LiquidPledgingMock_all.sol create mode 100644 build/LiquidPledgingPlugins.sol.js create mode 100644 build/LiquidPledgingPlugins_all.sol create mode 100644 build/LiquidPledgingStorage.sol.js create mode 100644 build/LiquidPledgingStorage_all.sol create mode 100644 build/LiquidPledging_all.sol create mode 100644 build/PledgeAdmins.sol.js create mode 100644 build/PledgeAdmins_all.sol create mode 100644 build/Pledges.sol.js create mode 100644 build/Pledges_all.sol create mode 100644 build/StandardToken.sol.js create mode 100644 build/StandardToken_all.sol create mode 100644 build/TestSimpleDelegatePlugin.sol.js create mode 100644 build/TestSimpleDelegatePlugin_all.sol create mode 100644 build/TestSimpleProjectPlugin.sol.js create mode 100644 build/TestSimpleProjectPluginFactory.sol.js create mode 100644 build/TestSimpleProjectPluginFactory_all.sol create mode 100644 build/TestSimpleProjectPlugin_all.sol create mode 100644 build/contracts.js create mode 100644 build/solcStandardInput.json create mode 100644 build/solcStandardOutput.json diff --git a/.gitignore b/.gitignore index 6d8836e..c0771ea 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,3 @@ __pycache__ .idea *.iml -build/ \ No newline at end of file diff --git a/build/EscapableApp.sol.js b/build/EscapableApp.sol.js new file mode 100644 index 0000000..fa7a1f9 --- /dev/null +++ b/build/EscapableApp.sol.js @@ -0,0 +1,57 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/EscapableApp_all.sol b/build/EscapableApp_all.sol new file mode 100644 index 0000000..d80e9a6 --- /dev/null +++ b/build/EscapableApp_all.sol @@ -0,0 +1,570 @@ + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} diff --git a/build/ILiquidPledgingPlugin.sol.js b/build/ILiquidPledgingPlugin.sol.js new file mode 100644 index 0000000..1f80ff0 --- /dev/null +++ b/build/ILiquidPledgingPlugin.sol.js @@ -0,0 +1,7 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/ILiquidPledgingPlugin_all.sol b/build/ILiquidPledgingPlugin_all.sol new file mode 100644 index 0000000..5889987 --- /dev/null +++ b/build/ILiquidPledgingPlugin_all.sol @@ -0,0 +1,87 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} diff --git a/build/LPConstants.sol.js b/build/LPConstants.sol.js new file mode 100644 index 0000000..7a20b13 --- /dev/null +++ b/build/LPConstants.sol.js @@ -0,0 +1,14 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" +exports.KernelConstantsRuntimeByteCode = "0x6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" +exports.KernelStorageAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.KernelStorageByteCode = "0x6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" +exports.KernelStorageRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" +exports['_@aragon/os/contracts/kernel/KernelStorage.sol_keccak256'] = "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e" +exports.LPConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LPConstantsByteCode = "0x6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" +exports.LPConstantsRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" +exports['_./contracts/LPConstants.sol_keccak256'] = "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPConstants_all.sol b/build/LPConstants_all.sol new file mode 100644 index 0000000..3325d40 --- /dev/null +++ b/build/LPConstants_all.sol @@ -0,0 +1,35 @@ + + +///File: @aragon/os/contracts/kernel/KernelStorage.sol + +pragma solidity 0.4.18; + + +contract KernelConstants { + bytes32 constant public CORE_NAMESPACE = keccak256("core"); + bytes32 constant public APP_BASES_NAMESPACE = keccak256("base"); + bytes32 constant public APP_ADDR_NAMESPACE = keccak256("app"); + + bytes32 constant public KERNEL_APP_ID = keccak256("kernel.aragonpm.eth"); + bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID); + + bytes32 constant public ACL_APP_ID = keccak256("acl.aragonpm.eth"); + bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID); +} + + +contract KernelStorage is KernelConstants { + mapping (bytes32 => address) public apps; +} + + +///File: ./contracts/LPConstants.sol + +pragma solidity ^0.4.18; + + + +contract LPConstants is KernelConstants { + bytes32 constant public VAULT_APP_ID = keccak256("vault"); + bytes32 constant public LP_APP_ID = keccak256("liquidPledging"); +} \ No newline at end of file diff --git a/build/LPFactory.sol.js b/build/LPFactory.sol.js new file mode 100644 index 0000000..67c211c --- /dev/null +++ b/build/LPFactory.sol.js @@ -0,0 +1,180 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" +exports.KernelConstantsRuntimeByteCode = "0x6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" +exports.KernelStorageAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.KernelStorageByteCode = "0x6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" +exports.KernelStorageRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" +exports['_@aragon/os/contracts/kernel/KernelStorage.sol_keccak256'] = "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.IAppProxyAbi = [{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IAppProxyByteCode = "0x" +exports.IAppProxyRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/apps/IAppProxy.sol_keccak256'] = "0x4d5f398f887030d6d0b5045e0424b59d58abd718143289afcaf3e160d6c91736" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.DelegateProxyAbi = [] +exports.DelegateProxyByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" +exports.DelegateProxyRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" +exports['_@aragon/os/contracts/common/DelegateProxy.sol_keccak256'] = "0x81bab220700a9a5def3ac54278ccec046be0b1c333dba9567f7175e358414d87" +exports.AppProxyBaseAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.AppProxyBaseByteCode = "0x" +exports.AppProxyBaseRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/apps/AppProxyBase.sol_keccak256'] = "0x907218cac02c5f7a10873eb30fb1ffaecdd93527a0ff7e2f0305590bf585d06b" +exports.AppProxyUpgradeableAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pinnedCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.AppProxyUpgradeableByteCode = "0x6060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" +exports.AppProxyUpgradeableRuntimeByteCode = "0x6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" +exports['_@aragon/os/contracts/apps/AppProxyUpgradeable.sol_keccak256'] = "0x4613af6e313048b7de649d54630276fb18154dac5674f057109f0e0591f11cb2" +exports.AppProxyPinnedAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.AppProxyPinnedByteCode = "0x6060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" +exports.AppProxyPinnedRuntimeByteCode = "0x6060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" +exports['_@aragon/os/contracts/apps/AppProxyPinned.sol_keccak256'] = "0xfe66e88413adc4d60ae53352046bd23ebd0aeb3120599d445df19caa8b095c26" +exports.AppProxyFactoryAbi = [{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"}] +exports.AppProxyFactoryByteCode = "0x6060604052341561000f57600080fd5b61134b8061001e6000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" +exports.AppProxyFactoryRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" +exports['_@aragon/os/contracts/factory/AppProxyFactory.sol_keccak256'] = "0xa5314f57f93d8e633724bd9f94ad43f127c5b5466dcd0ef32fe0f78d5d431592" +exports.KernelAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_baseAcl","type":"address"},{"name":"_permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newPinnedAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_namespace","type":"bytes32"},{"name":"_name","type":"bytes32"},{"name":"_app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.KernelByteCode = "0x6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" +exports.KernelRuntimeByteCode = "0x606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" +exports['_@aragon/os/contracts/kernel/Kernel.sol_keccak256'] = "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d" +exports.KernelProxyAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernelImpl","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.KernelProxyByteCode = "0x6060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029" +exports.KernelProxyRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029" +exports['_@aragon/os/contracts/kernel/KernelProxy.sol_keccak256'] = "0xe9baab334f8e30a2d9a4fb21a54b46a6603597f812deef2ec36215491e6dcf11" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.ACLAbi = [{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"grantPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CREATE_PERMISSIONS_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"},{"name":"_params","type":"uint256[]"}],"name":"grantPermissionP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"},{"name":"","type":"uint256"}],"name":"permissionParams","outputs":[{"name":"id","type":"uint8"},{"name":"op","type":"uint8"},{"name":"value","type":"uint240"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"revokePermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newManager","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"setPermissionManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"getPermissionManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"},{"name":"_manager","type":"address"}],"name":"createPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EMPTY_PARAM_HASH","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"uint256[]"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"entity","type":"address"},{"indexed":true,"name":"app","type":"address"},{"indexed":true,"name":"role","type":"bytes32"},{"indexed":false,"name":"allowed","type":"bool"}],"name":"SetPermission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"app","type":"address"},{"indexed":true,"name":"role","type":"bytes32"},{"indexed":true,"name":"manager","type":"address"}],"name":"ChangePermissionManager","type":"event"}] +exports.ACLByteCode = "0x6060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.ACLRuntimeByteCode = "0x6060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.ACLOracleAbi = [{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.ACLOracleByteCode = "0x" +exports.ACLOracleRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/ACL.sol_keccak256'] = "0x7e636d70192cc2b18d00df37ff91e1f3b4e5a6dfb0c92f9d90441dceac1f2a25" +exports.EVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REGISTRY_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"executors","outputs":[{"name":"executor","type":"address"},{"name":"enabled","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryByteCode = "0x6060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029" +exports.EVMScriptRegistryRuntimeByteCode = "0x6060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRegistry.sol_keccak256'] = "0xd2b72c173913aa2b869e6185843e3796e0532b9744a10fdf0ac7ec532e5b0fff" +exports.CallsScriptAbi = [{"constant":false,"inputs":[{"name":"_script","type":"bytes"},{"name":"_input","type":"bytes"},{"name":"_blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"dst","type":"address"}],"name":"LogScriptCall","type":"event"}] +exports.CallsScriptByteCode = "0x6060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029" +exports.CallsScriptRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029" +exports['_@aragon/os/contracts/evmscript/executors/CallsScript.sol_keccak256'] = "0x72ff2681f5dfec19b05d235d841042a78a4682a8368e6bb16516447495161014" +exports.DelegateScriptAbi = [{"constant":false,"inputs":[{"name":"_script","type":"bytes"},{"name":"_input","type":"bytes"},{"name":"_blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.DelegateScriptByteCode = "0x6060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029" +exports.DelegateScriptRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029" +exports.DelegateScriptTargetAbi = [{"constant":false,"inputs":[],"name":"exec","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.DelegateScriptTargetByteCode = "0x" +exports.DelegateScriptTargetRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/executors/DelegateScript.sol_keccak256'] = "0x1f29ea7d6d6f912b392f3fc4b9dad4cfbe5f2133fbdf21e8233a999a6726858a" +exports.DeployDelegateScriptAbi = [{"constant":false,"inputs":[{"name":"_script","type":"bytes"},{"name":"_input","type":"bytes"},{"name":"_blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.DeployDelegateScriptByteCode = "0x6060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029" +exports.DeployDelegateScriptRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029" +exports['_@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol_keccak256'] = "0x664ae058059e6b64e38a2f0c56c4c1603de64de56270fab1992cf64d721f1233" +exports.EVMScriptRegistryFactoryAbi = [{"constant":true,"inputs":[],"name":"baseReg","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseDeployDel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dao","type":"address"},{"name":"_root","type":"address"}],"name":"newEVMScriptRegistry","outputs":[{"name":"reg","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseCalls","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"baseDel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"}] +exports.EVMScriptRegistryFactoryByteCode = "0x6060604052341561000f57600080fd5b61001761010c565b604051809103906000f080151561002d57600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561005561011d565b604051809103906000f080151561006b57600080fd5b60018054600160a060020a031916600160a060020a039290921691909117905561009361012e565b604051809103906000f08015156100a957600080fd5b60028054600160a060020a031916600160a060020a03929092169190911790556100d161013f565b604051809103906000f08015156100e757600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055610150565b604051610aac8062001cb983390190565b6040516103b1806200276583390190565b6040516104b08062002b1683390190565b60405161050d8062002fc683390190565b611b5980620001606000396000f3006060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e972200296060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a9949417665585108200296060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb900296060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd442541100296060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029" +exports.EVMScriptRegistryFactoryRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e97220029" +exports['_@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol_keccak256'] = "0x591ccf2f0ddfc70935e736bd0072b7319d07f29fa1d46a4f18231d6aa40781fa" +exports.DAOFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_regFactory","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] +exports.DAOFactoryByteCode = "0x6060604052341561000f57600080fd5b60405160208061439683398101604052808051915061002e90506100c7565b604051809103906000f080151561004457600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561006c6100d7565b604051809103906000f080151561008257600080fd5b60018054600160a060020a031916600160a060020a039283161790558116156100c15760028054600160a060020a031916600160a060020a0383161790555b506100e7565b604051611fdc80610dd583390190565b6040516115e580612db183390190565b610cdf806100f66000396000f3006060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca1200296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.DAOFactoryRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca120029" +exports['_@aragon/os/contracts/factory/DAOFactory.sol_keccak256'] = "0x60585270378bc1c725befb3449f4c48a744155bdf8fc659b7a72964247d36b78" +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingByteCode = "0x" +exports.ILiquidPledgingRuntimeByteCode = "0x" +exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"AUTHORIZE_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LPVaultByteCode = "0x6060604052341561000f57600080fd5b6118218061001e6000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" +exports.LPVaultRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" +exports['_./contracts/LPVault.sol_keccak256'] = "0xe15efc5feed73ddc4b350af232ffd35cdfcf241648f230b707d546e357c3819c" +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.LPConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LPConstantsByteCode = "0x6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" +exports.LPConstantsRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" +exports['_./contracts/LPConstants.sol_keccak256'] = "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314" +exports.LPFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"newLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vaultBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vaultBase","type":"address"},{"name":"_lpBase","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"vault","type":"address"}],"name":"DeployVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"liquidPledging","type":"address"}],"name":"DeployLiquidPledging","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] +exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b604051604080620053f283398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001e3183390190565b6040516115e58062003e0d83390190565b611ccd80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd000296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd00029" +exports['_./contracts/LPFactory.sol_keccak256'] = "0x8ca680de04905959209a4cad64ac490075a97e3960bf7f788defc80ac259e5e7" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPFactory_all.sol b/build/LPFactory_all.sol new file mode 100644 index 0000000..064e13c --- /dev/null +++ b/build/LPFactory_all.sol @@ -0,0 +1,3718 @@ + + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/kernel/KernelStorage.sol + +pragma solidity 0.4.18; + + +contract KernelConstants { + bytes32 constant public CORE_NAMESPACE = keccak256("core"); + bytes32 constant public APP_BASES_NAMESPACE = keccak256("base"); + bytes32 constant public APP_ADDR_NAMESPACE = keccak256("app"); + + bytes32 constant public KERNEL_APP_ID = keccak256("kernel.aragonpm.eth"); + bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID); + + bytes32 constant public ACL_APP_ID = keccak256("acl.aragonpm.eth"); + bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID); +} + + +contract KernelStorage is KernelConstants { + mapping (bytes32 => address) public apps; +} + + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/IAppProxy.sol + +pragma solidity 0.4.18; + +interface IAppProxy { + function isUpgradeable() public pure returns (bool); + function getCode() public view returns (address); +} + + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/common/DelegateProxy.sol + +pragma solidity 0.4.18; + + +contract DelegateProxy { + /** + * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!) + * @param _dst Destination address to perform the delegatecall + * @param _calldata Calldata for the delegatecall + */ + function delegatedFwd(address _dst, bytes _calldata) internal { + require(isContract(_dst)); + assembly { + let result := delegatecall(sub(gas, 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0) + let size := returndatasize + + let ptr := mload(0x40) + returndatacopy(ptr, 0, size) + + // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. + // if the call returned error data, forward it + switch result case 0 { revert(ptr, size) } + default { return(ptr, size) } + } + } + + function isContract(address _target) internal view returns (bool) { + uint256 size; + assembly { size := extcodesize(_target) } + return size > 0; + } +} + + +///File: @aragon/os/contracts/apps/AppProxyBase.sol + +pragma solidity 0.4.18; + + + + + + + +contract AppProxyBase is IAppProxy, AppStorage, DelegateProxy, KernelConstants { + /** + * @dev Initialize AppProxy + * @param _kernel Reference to organization kernel for the app + * @param _appId Identifier for app + * @param _initializePayload Payload for call to be made after setup to initialize + */ + function AppProxyBase(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public { + kernel = _kernel; + appId = _appId; + + // Implicit check that kernel is actually a Kernel + // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to + // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on + // it. + address appCode = getAppBase(appId); + + // If initialize payload is provided, it will be executed + if (_initializePayload.length > 0) { + require(isContract(appCode)); + // Cannot make delegatecall as a delegateproxy.delegatedFwd as it + // returns ending execution context and halts contract deployment + require(appCode.delegatecall(_initializePayload)); + } + } + + function getAppBase(bytes32 _appId) internal view returns (address) { + return kernel.getApp(keccak256(APP_BASES_NAMESPACE, _appId)); + } + + function () payable public { + address target = getCode(); + require(target != 0); // if app code hasn't been set yet, don't call + delegatedFwd(target, msg.data); + } +} + +///File: @aragon/os/contracts/apps/AppProxyUpgradeable.sol + +pragma solidity 0.4.18; + + + + +contract AppProxyUpgradeable is AppProxyBase { + address public pinnedCode; + + /** + * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app) + * @param _kernel Reference to organization kernel for the app + * @param _appId Identifier for app + * @param _initializePayload Payload for call to be made after setup to initialize + */ + function AppProxyUpgradeable(IKernel _kernel, bytes32 _appId, bytes _initializePayload) + AppProxyBase(_kernel, _appId, _initializePayload) public + { + + } + + function getCode() public view returns (address) { + return getAppBase(appId); + } + + function isUpgradeable() public pure returns (bool) { + return true; + } +} + + +///File: @aragon/os/contracts/apps/AppProxyPinned.sol + +pragma solidity 0.4.18; + + + + +contract AppProxyPinned is AppProxyBase { + /** + * @dev Initialize AppProxyPinned (makes it an un-upgradeable Aragon app) + * @param _kernel Reference to organization kernel for the app + * @param _appId Identifier for app + * @param _initializePayload Payload for call to be made after setup to initialize + */ + function AppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) + AppProxyBase(_kernel, _appId, _initializePayload) public + { + pinnedCode = getAppBase(appId); + require(pinnedCode != address(0)); + } + + function getCode() public view returns (address) { + return pinnedCode; + } + + function isUpgradeable() public pure returns (bool) { + return false; + } + + function () payable public { + delegatedFwd(getCode(), msg.data); + } +} + +///File: @aragon/os/contracts/factory/AppProxyFactory.sol + +pragma solidity 0.4.18; + + + + + +contract AppProxyFactory { + event NewAppProxy(address proxy); + + function newAppProxy(IKernel _kernel, bytes32 _appId) public returns (AppProxyUpgradeable) { + return newAppProxy(_kernel, _appId, new bytes(0)); + } + + function newAppProxy(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyUpgradeable) { + AppProxyUpgradeable proxy = new AppProxyUpgradeable(_kernel, _appId, _initializePayload); + NewAppProxy(address(proxy)); + return proxy; + } + + function newAppProxyPinned(IKernel _kernel, bytes32 _appId) public returns (AppProxyPinned) { + return newAppProxyPinned(_kernel, _appId, new bytes(0)); + } + + function newAppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyPinned) { + AppProxyPinned proxy = new AppProxyPinned(_kernel, _appId, _initializePayload); + NewAppProxy(address(proxy)); + return proxy; + } +} + + +///File: @aragon/os/contracts/kernel/Kernel.sol + +pragma solidity 0.4.18; + + + + + + + + + +contract Kernel is IKernel, KernelStorage, Initializable, AppProxyFactory, ACLSyntaxSugar { + bytes32 constant public APP_MANAGER_ROLE = bytes32(1); + + /** + * @dev Initialize can only be called once. It saves the block number in which it was initialized. + * @notice Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions + * @param _baseAcl Address of base ACL app + * @param _permissionsCreator Entity that will be given permission over createPermission + */ + function initialize(address _baseAcl, address _permissionsCreator) onlyInit public { + initialized(); + + IACL acl = IACL(newAppProxy(this, ACL_APP_ID)); + + _setApp(APP_BASES_NAMESPACE, ACL_APP_ID, _baseAcl); + _setApp(APP_ADDR_NAMESPACE, ACL_APP_ID, acl); + + acl.initialize(_permissionsCreator); + } + + /** + * @dev Create a new instance of an app linked to this kernel and set its base + * implementation if it was not already set + * @param _name Name of the app + * @param _appBase Address of the app's base implementation + * @return AppProxy instance + */ + function newAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { + _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); + appProxy = newAppProxy(this, _name); + } + + /** + * @dev Create a new pinned instance of an app linked to this kernel and set + * its base implementation if it was not already set + * @param _name Name of the app + * @param _appBase Address of the app's base implementation + * @return AppProxy instance + */ + function newPinnedAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { + _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); + appProxy = newAppProxyPinned(this, _name); + } + + /** + * @dev Set the resolving address of an app instance or base implementation + * @param _namespace App namespace to use + * @param _name Name of the app + * @param _app Address of the app + * @return ID of app + */ + function setApp(bytes32 _namespace, bytes32 _name, address _app) auth(APP_MANAGER_ROLE, arr(_namespace, _name)) kernelIntegrity public returns (bytes32 id) { + return _setApp(_namespace, _name, _app); + } + + /** + * @dev Get the address of an app instance or base implementation + * @param _id App identifier + * @return Address of the app + */ + function getApp(bytes32 _id) public view returns (address) { + return apps[_id]; + } + + /** + * @dev Get the installed ACL app + * @return ACL app + */ + function acl() public view returns (IACL) { + return IACL(getApp(ACL_APP)); + } + + /** + * @dev Function called by apps to check ACL on kernel or to check permission status + * @param _who Sender of the original call + * @param _where Address of the app + * @param _what Identifier for a group of actions in app + * @param _how Extra data for ACL auth + * @return boolean indicating whether the ACL allows the role or not + */ + function hasPermission(address _who, address _where, bytes32 _what, bytes _how) public view returns (bool) { + return acl().hasPermission(_who, _where, _what, _how); + } + + function _setApp(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { + id = keccak256(_namespace, _name); + apps[id] = _app; + SetApp(_namespace, _name, id, _app); + } + + function _setAppIfNew(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { + id = keccak256(_namespace, _name); + + if (_app != address(0)) { + address app = getApp(id); + if (app != address(0)) { + require(app == _app); + } else { + apps[id] = _app; + SetApp(_namespace, _name, id, _app); + } + } + } + + modifier auth(bytes32 _role, uint256[] memory params) { + bytes memory how; + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + // Params is invalid from this point fwd + require(hasPermission(msg.sender, address(this), _role, how)); + _; + } + + modifier kernelIntegrity { + _; // After execution check integrity + address kernel = getApp(KERNEL_APP); + uint256 size; + assembly { size := extcodesize(kernel) } + require(size > 0); + } +} + + +///File: @aragon/os/contracts/kernel/KernelProxy.sol + +pragma solidity 0.4.18; + + + + + +contract KernelProxy is KernelStorage, DelegateProxy { + /** + * @dev KernelProxy is a proxy contract to a kernel implementation. The implementation + * can update the reference, which effectively upgrades the contract + * @param _kernelImpl Address of the contract used as implementation for kernel + */ + function KernelProxy(address _kernelImpl) public { + apps[keccak256(CORE_NAMESPACE, KERNEL_APP_ID)] = _kernelImpl; + } + + /** + * @dev All calls made to the proxy are forwarded to the kernel implementation via a delegatecall + * @return Any bytes32 value the implementation returns + */ + function () payable public { + delegatedFwd(apps[KERNEL_APP], msg.data); + } +} + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: @aragon/os/contracts/acl/ACL.sol + +pragma solidity 0.4.18; + + + + + + +interface ACLOracle { + function canPerform(address who, address where, bytes32 what) public view returns (bool); +} + + +contract ACL is IACL, AragonApp, ACLHelpers { + bytes32 constant public CREATE_PERMISSIONS_ROLE = bytes32(1); + + // whether a certain entity has a permission + mapping (bytes32 => bytes32) permissions; // 0 for no permission, or parameters id + mapping (bytes32 => Param[]) public permissionParams; + + // who is the manager of a permission + mapping (bytes32 => address) permissionManager; + + enum Op { NONE, EQ, NEQ, GT, LT, GTE, LTE, NOT, AND, OR, XOR, IF_ELSE, RET } // op types + + struct Param { + uint8 id; + uint8 op; + uint240 value; // even though value is an uint240 it can store addresses + // in the case of 32 byte hashes losing 2 bytes precision isn't a huge deal + // op and id take less than 1 byte each so it can be kept in 1 sstore + } + + uint8 constant BLOCK_NUMBER_PARAM_ID = 200; + uint8 constant TIMESTAMP_PARAM_ID = 201; + uint8 constant SENDER_PARAM_ID = 202; + uint8 constant ORACLE_PARAM_ID = 203; + uint8 constant LOGIC_OP_PARAM_ID = 204; + uint8 constant PARAM_VALUE_PARAM_ID = 205; + // TODO: Add execution times param type? + + bytes32 constant public EMPTY_PARAM_HASH = keccak256(uint256(0)); + address constant ANY_ENTITY = address(-1); + + modifier onlyPermissionManager(address _app, bytes32 _role) { + require(msg.sender == getPermissionManager(_app, _role)); + _; + } + + event SetPermission(address indexed entity, address indexed app, bytes32 indexed role, bool allowed); + event ChangePermissionManager(address indexed app, bytes32 indexed role, address indexed manager); + + /** + * @dev Initialize can only be called once. It saves the block number in which it was initialized. + * @notice Initializes an ACL instance and sets `_permissionsCreator` as the entity that can create other permissions + * @param _permissionsCreator Entity that will be given permission over createPermission + */ + function initialize(address _permissionsCreator) onlyInit public { + initialized(); + require(msg.sender == address(kernel)); + + _createPermission(_permissionsCreator, this, CREATE_PERMISSIONS_ROLE, _permissionsCreator); + } + + /** + * @dev Creates a permission that wasn't previously set. Access is limited by the ACL. + * If a created permission is removed it is possible to reset it with createPermission. + * @notice Create a new permission granting `_entity` the ability to perform actions of role `_role` on `_app` (setting `_manager` as the permission manager) + * @param _entity Address of the whitelisted entity that will be able to perform the role + * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL) + * @param _role Identifier for the group of actions in app given access to perform + * @param _manager Address of the entity that will be able to grant and revoke the permission further. + */ + function createPermission(address _entity, address _app, bytes32 _role, address _manager) external { + require(hasPermission(msg.sender, address(this), CREATE_PERMISSIONS_ROLE)); + + _createPermission(_entity, _app, _role, _manager); + } + + /** + * @dev Grants permission if allowed. This requires `msg.sender` to be the permission manager + * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app` + * @param _entity Address of the whitelisted entity that will be able to perform the role + * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL) + * @param _role Identifier for the group of actions in app given access to perform + */ + function grantPermission(address _entity, address _app, bytes32 _role) + external + { + grantPermissionP(_entity, _app, _role, new uint256[](0)); + } + + /** + * @dev Grants a permission with parameters if allowed. This requires `msg.sender` to be the permission manager + * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app` + * @param _entity Address of the whitelisted entity that will be able to perform the role + * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL) + * @param _role Identifier for the group of actions in app given access to perform + * @param _params Permission parameters + */ + function grantPermissionP(address _entity, address _app, bytes32 _role, uint256[] _params) + onlyPermissionManager(_app, _role) + public + { + require(!hasPermission(_entity, _app, _role)); + + bytes32 paramsHash = _params.length > 0 ? _saveParams(_params) : EMPTY_PARAM_HASH; + _setPermission(_entity, _app, _role, paramsHash); + } + + /** + * @dev Revokes permission if allowed. This requires `msg.sender` to be the the permission manager + * @notice Revokes `_entity` the ability to perform actions of role `_role` on `_app` + * @param _entity Address of the whitelisted entity to revoke access from + * @param _app Address of the app in which the role will be revoked + * @param _role Identifier for the group of actions in app being revoked + */ + function revokePermission(address _entity, address _app, bytes32 _role) + onlyPermissionManager(_app, _role) + external + { + require(hasPermission(_entity, _app, _role)); + + _setPermission(_entity, _app, _role, bytes32(0)); + } + + /** + * @notice Sets `_newManager` as the manager of the permission `_role` in `_app` + * @param _newManager Address for the new manager + * @param _app Address of the app in which the permission management is being transferred + * @param _role Identifier for the group of actions being transferred + */ + function setPermissionManager(address _newManager, address _app, bytes32 _role) + onlyPermissionManager(_app, _role) + external + { + _setPermissionManager(_newManager, _app, _role); + } + + /** + * @dev Get manager for permission + * @param _app Address of the app + * @param _role Identifier for a group of actions in app + * @return address of the manager for the permission + */ + function getPermissionManager(address _app, bytes32 _role) public view returns (address) { + return permissionManager[roleHash(_app, _role)]; + } + + /** + * @dev Function called by apps to check ACL on kernel or to check permission statu + * @param _who Sender of the original call + * @param _where Address of the app + * @param _where Identifier for a group of actions in app + * @param _how Permission parameters + * @return boolean indicating whether the ACL allows the role or not + */ + function hasPermission(address _who, address _where, bytes32 _what, bytes memory _how) public view returns (bool) { + uint256[] memory how; + uint256 intsLength = _how.length / 32; + assembly { + how := _how // forced casting + mstore(how, intsLength) + } + // _how is invalid from this point fwd + return hasPermission(_who, _where, _what, how); + } + + function hasPermission(address _who, address _where, bytes32 _what, uint256[] memory _how) public view returns (bool) { + bytes32 whoParams = permissions[permissionHash(_who, _where, _what)]; + if (whoParams != bytes32(0) && evalParams(whoParams, _who, _where, _what, _how)) { + return true; + } + + bytes32 anyParams = permissions[permissionHash(ANY_ENTITY, _where, _what)]; + if (anyParams != bytes32(0) && evalParams(anyParams, ANY_ENTITY, _where, _what, _how)) { + return true; + } + + return false; + } + + function hasPermission(address _who, address _where, bytes32 _what) public view returns (bool) { + uint256[] memory empty = new uint256[](0); + return hasPermission(_who, _where, _what, empty); + } + + /** + * @dev Internal createPermission for access inside the kernel (on instantiation) + */ + function _createPermission(address _entity, address _app, bytes32 _role, address _manager) internal { + // only allow permission creation (or re-creation) when there is no manager + require(getPermissionManager(_app, _role) == address(0)); + + _setPermission(_entity, _app, _role, EMPTY_PARAM_HASH); + _setPermissionManager(_manager, _app, _role); + } + + /** + * @dev Internal function called to actually save the permission + */ + function _setPermission(address _entity, address _app, bytes32 _role, bytes32 _paramsHash) internal { + permissions[permissionHash(_entity, _app, _role)] = _paramsHash; + + SetPermission(_entity, _app, _role, _paramsHash != bytes32(0)); + } + + function _saveParams(uint256[] _encodedParams) internal returns (bytes32) { + bytes32 paramHash = keccak256(_encodedParams); + Param[] storage params = permissionParams[paramHash]; + + if (params.length == 0) { // params not saved before + for (uint256 i = 0; i < _encodedParams.length; i++) { + uint256 encodedParam = _encodedParams[i]; + Param memory param = Param(decodeParamId(encodedParam), decodeParamOp(encodedParam), uint240(encodedParam)); + params.push(param); + } + } + + return paramHash; + } + + function evalParams( + bytes32 _paramsHash, + address _who, + address _where, + bytes32 _what, + uint256[] _how + ) internal view returns (bool) + { + if (_paramsHash == EMPTY_PARAM_HASH) { + return true; + } + + return evalParam(_paramsHash, 0, _who, _where, _what, _how); + } + + function evalParam( + bytes32 _paramsHash, + uint32 _paramId, + address _who, + address _where, + bytes32 _what, + uint256[] _how + ) internal view returns (bool) + { + if (_paramId >= permissionParams[_paramsHash].length) { + return false; // out of bounds + } + + Param memory param = permissionParams[_paramsHash][_paramId]; + + if (param.id == LOGIC_OP_PARAM_ID) { + return evalLogic(param, _paramsHash, _who, _where, _what, _how); + } + + uint256 value; + uint256 comparedTo = uint256(param.value); + + // get value + if (param.id == ORACLE_PARAM_ID) { + value = ACLOracle(param.value).canPerform(_who, _where, _what) ? 1 : 0; + comparedTo = 1; + } else if (param.id == BLOCK_NUMBER_PARAM_ID) { + value = blockN(); + } else if (param.id == TIMESTAMP_PARAM_ID) { + value = time(); + } else if (param.id == SENDER_PARAM_ID) { + value = uint256(msg.sender); + } else if (param.id == PARAM_VALUE_PARAM_ID) { + value = uint256(param.value); + } else { + if (param.id >= _how.length) { + return false; + } + value = uint256(uint240(_how[param.id])); // force lost precision + } + + if (Op(param.op) == Op.RET) { + return uint256(value) > 0; + } + + return compare(value, Op(param.op), comparedTo); + } + + function evalLogic(Param _param, bytes32 _paramsHash, address _who, address _where, bytes32 _what, uint256[] _how) internal view returns (bool) { + if (Op(_param.op) == Op.IF_ELSE) { + var (condition, success, failure) = decodeParamsList(uint256(_param.value)); + bool result = evalParam(_paramsHash, condition, _who, _where, _what, _how); + + return evalParam(_paramsHash, result ? success : failure, _who, _where, _what, _how); + } + + var (v1, v2,) = decodeParamsList(uint256(_param.value)); + bool r1 = evalParam(_paramsHash, v1, _who, _where, _what, _how); + + if (Op(_param.op) == Op.NOT) { + return !r1; + } + + if (r1 && Op(_param.op) == Op.OR) { + return true; + } + + if (!r1 && Op(_param.op) == Op.AND) { + return false; + } + + bool r2 = evalParam(_paramsHash, v2, _who, _where, _what, _how); + + if (Op(_param.op) == Op.XOR) { + return (r1 && !r2) || (!r1 && r2); + } + + return r2; // both or and and depend on result of r2 after checks + } + + function compare(uint256 _a, Op _op, uint256 _b) internal pure returns (bool) { + if (_op == Op.EQ) return _a == _b; // solium-disable-line lbrace + if (_op == Op.NEQ) return _a != _b; // solium-disable-line lbrace + if (_op == Op.GT) return _a > _b; // solium-disable-line lbrace + if (_op == Op.LT) return _a < _b; // solium-disable-line lbrace + if (_op == Op.GTE) return _a >= _b; // solium-disable-line lbrace + if (_op == Op.LTE) return _a <= _b; // solium-disable-line lbrace + return false; + } + + /** + * @dev Internal function that sets management + */ + function _setPermissionManager(address _newManager, address _app, bytes32 _role) internal { + permissionManager[roleHash(_app, _role)] = _newManager; + ChangePermissionManager(_app, _role, _newManager); + } + + function roleHash(address _where, bytes32 _what) pure internal returns (bytes32) { + return keccak256(uint256(1), _where, _what); + } + + function permissionHash(address _who, address _where, bytes32 _what) pure internal returns (bytes32) { + return keccak256(uint256(2), _who, _where, _what); + } + + function time() internal view returns (uint64) { return uint64(block.timestamp); } // solium-disable-line security/no-block-members + + function blockN() internal view returns (uint256) { return block.number; } +} + + +///File: @aragon/os/contracts/evmscript/EVMScriptRegistry.sol + +pragma solidity 0.4.18; + + + + + + + + +contract EVMScriptRegistry is IEVMScriptRegistry, EVMScriptRegistryConstants, AragonApp { + using ScriptHelpers for bytes; + + // WARN: Manager can censor all votes and the like happening in an org + bytes32 constant public REGISTRY_MANAGER_ROLE = bytes32(1); + + struct ExecutorEntry { + address executor; + bool enabled; + } + + ExecutorEntry[] public executors; + + function initialize() onlyInit public { + initialized(); + // Create empty record to begin executor IDs at 1 + executors.push(ExecutorEntry(address(0), false)); + } + + function addScriptExecutor(address _executor) external auth(REGISTRY_MANAGER_ROLE) returns (uint id) { + return executors.push(ExecutorEntry(_executor, true)); + } + + function disableScriptExecutor(uint256 _executorId) external auth(REGISTRY_MANAGER_ROLE) { + executors[_executorId].enabled = false; + } + + function getScriptExecutor(bytes _script) public view returns (address) { + uint256 id = _script.getSpecId(); + + if (id == 0 || id >= executors.length) { + return address(0); + } + + ExecutorEntry storage entry = executors[id]; + return entry.enabled ? entry.executor : address(0); + } +} + + +///File: @aragon/os/contracts/evmscript/executors/CallsScript.sol + +pragma solidity ^0.4.18; + +// Inspired by https://github.com/reverendus/tx-manager + + + + + +contract CallsScript is IEVMScriptExecutor { + using ScriptHelpers for bytes; + + uint256 constant internal SCRIPT_START_LOCATION = 4; + + event LogScriptCall(address indexed sender, address indexed src, address indexed dst); + + /** + * @notice Executes a number of call scripts + * @param _script [ specId (uint32) ] many calls with this structure -> + * [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ] + * @param _input Input is ignored in callscript + * @param _blacklist Addresses the script cannot call to, or will revert. + * @return always returns empty byte array + */ + function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) { + uint256 location = SCRIPT_START_LOCATION; // first 32 bits are spec id + while (location < _script.length) { + address contractAddress = _script.addressAt(location); + // Check address being called is not blacklist + for (uint i = 0; i < _blacklist.length; i++) { + require(contractAddress != _blacklist[i]); + } + + // logged before execution to ensure event ordering in receipt + // if failed entire execution is reverted regardless + LogScriptCall(msg.sender, address(this), contractAddress); + + uint256 calldataLength = uint256(_script.uint32At(location + 0x14)); + uint256 calldataStart = _script.locationOf(location + 0x14 + 0x04); + + assembly { + let success := call(sub(gas, 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0) + switch success case 0 { revert(0, 0) } + } + + location += (0x14 + 0x04 + calldataLength); + } + } +} + +///File: @aragon/os/contracts/evmscript/executors/DelegateScript.sol + +pragma solidity 0.4.18; + + + + + +interface DelegateScriptTarget { + function exec() public; +} + + +contract DelegateScript is IEVMScriptExecutor { + using ScriptHelpers for *; + + uint256 constant internal SCRIPT_START_LOCATION = 4; + + /** + * @notice Executes script by delegatecall into a contract + * @param _script [ specId (uint32) ][ contract address (20 bytes) ] + * @param _input ABI encoded call to be made to contract (if empty executes default exec() function) + * @param _blacklist If any address is passed, will revert. + * @return Call return data + */ + function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) { + require(_blacklist.length == 0); // dont have ability to control bans, so fail. + + // Script should be spec id + address (20 bytes) + require(_script.length == SCRIPT_START_LOCATION + 20); + return delegate(_script.addressAt(SCRIPT_START_LOCATION), _input); + } + + /** + * @dev Delegatecall to contract with input data + */ + function delegate(address _addr, bytes memory _input) internal returns (bytes memory output) { + require(isContract(_addr)); + require(_addr.delegatecall(_input.length > 0 ? _input : defaultInput())); + return returnedData(); + } + + function isContract(address _target) internal view returns (bool) { + uint256 size; + assembly { size := extcodesize(_target) } + return size > 0; + } + + function defaultInput() internal pure returns (bytes) { + return DelegateScriptTarget(0).exec.selector.toBytes(); + } + + /** + * @dev copies and returns last's call data + */ + function returnedData() internal view returns (bytes ret) { + assembly { + let size := returndatasize + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + mstore(ret, size) // set array length + returndatacopy(add(ret, 0x20), 0, size) // copy return data + } + return ret; + } +} + +///File: @aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol + +pragma solidity 0.4.18; + + + +// Inspired by: https://github.com/dapphub/ds-proxy/blob/master/src/proxy.sol + + +contract DeployDelegateScript is DelegateScript { + uint256 constant internal SCRIPT_START_LOCATION = 4; + + mapping (bytes32 => address) cache; + + /** + * @notice Executes script by delegatecall into a deployed contract (exec() function) + * @param _script [ specId (uint32) ][ contractInitcode (bytecode) ] + * @param _input ABI encoded call to be made to contract (if empty executes default exec() function) + * @param _blacklist If any address is passed, will revert. + * @return Call return data + */ + function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) { + require(_blacklist.length == 0); // dont have ability to control bans, so fail. + + bytes32 id = keccak256(_script); + address deployed = cache[id]; + if (deployed == address(0)) { + deployed = deploy(_script); + cache[id] = deployed; + } + + return DelegateScript.delegate(deployed, _input); + } + + /** + * @dev Deploys contract byte code to network + */ + function deploy(bytes _script) internal returns (address addr) { + assembly { + // 0x24 = 0x20 (length) + 0x04 (spec id uint32) + // Length of code is 4 bytes less than total script size + addr := create(0, add(_script, 0x24), sub(mload(_script), 0x04)) + switch iszero(extcodesize(addr)) + case 1 { revert(0, 0) } // throw if contract failed to deploy + } + } +} + +///File: @aragon/os/contracts/factory/EVMScriptRegistryFactory.sol + +pragma solidity 0.4.18; + + + + + + + + + + + + +contract EVMScriptRegistryFactory is AppProxyFactory, EVMScriptRegistryConstants { + address public baseReg; + address public baseCalls; + address public baseDel; + address public baseDeployDel; + + function EVMScriptRegistryFactory() public { + baseReg = address(new EVMScriptRegistry()); + baseCalls = address(new CallsScript()); + baseDel = address(new DelegateScript()); + baseDeployDel = address(new DeployDelegateScript()); + } + + function newEVMScriptRegistry(Kernel _dao, address _root) public returns (EVMScriptRegistry reg) { + reg = EVMScriptRegistry(_dao.newPinnedAppInstance(EVMSCRIPT_REGISTRY_APP_ID, baseReg)); + reg.initialize(); + + ACL acl = ACL(_dao.acl()); + + _dao.setApp(_dao.APP_ADDR_NAMESPACE(), EVMSCRIPT_REGISTRY_APP_ID, reg); + acl.createPermission(this, reg, reg.REGISTRY_MANAGER_ROLE(), this); + + reg.addScriptExecutor(baseCalls); // spec 1 = CallsScript + reg.addScriptExecutor(baseDel); // spec 2 = DelegateScript + reg.addScriptExecutor(baseDeployDel); // spec 3 = DeployDelegateScript + + acl.revokePermission(this, reg, reg.REGISTRY_MANAGER_ROLE()); + acl.setPermissionManager(_root, reg, reg.REGISTRY_MANAGER_ROLE()); + + return reg; + } +} + + +///File: @aragon/os/contracts/factory/DAOFactory.sol + +pragma solidity 0.4.18; + + + + + + + + + +contract DAOFactory { + address public baseKernel; + address public baseACL; + EVMScriptRegistryFactory public regFactory; + + event DeployDAO(address dao); + event DeployEVMScriptRegistry(address reg); + + function DAOFactory(address _regFactory) public { + // No need to init as it cannot be killed by devops199 + baseKernel = address(new Kernel()); + baseACL = address(new ACL()); + + if (_regFactory != address(0)) { + regFactory = EVMScriptRegistryFactory(_regFactory); + } + } + + /** + * @param _root Address that will be granted control to setup DAO permissions + */ + function newDAO(address _root) public returns (Kernel dao) { + dao = Kernel(new KernelProxy(baseKernel)); + + address initialRoot = address(regFactory) != address(0) ? this : _root; + dao.initialize(baseACL, initialRoot); + + ACL acl = ACL(dao.acl()); + + if (address(regFactory) != address(0)) { + bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); + bytes32 appManagerRole = dao.APP_MANAGER_ROLE(); + + acl.grantPermission(regFactory, acl, permRole); + + acl.createPermission(regFactory, dao, appManagerRole, this); + + EVMScriptRegistry reg = regFactory.newEVMScriptRegistry(dao, _root); + DeployEVMScriptRegistry(address(reg)); + + acl.revokePermission(regFactory, dao, appManagerRole); + acl.grantPermission(_root, acl, permRole); + + acl.setPermissionManager(address(0), dao, appManagerRole); + acl.setPermissionManager(_root, acl, permRole); + } + + DeployDAO(dao); + } +} + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LPVault.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: RJ Ewing, Griff Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/// @dev This contract holds ether securely for liquid pledging systems; for +/// this iteration the funds will come often be escaped to the Giveth Multisig +/// (safety precaution), but once fully tested and optimized this contract will +/// be a safe place to store funds equipped with optional variable time delays +/// to allow for an optional escapeHatch to be implemented in case of issues; +/// future versions of this contract will be enabled for tokens + + + + +/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract +/// to confirm and cancel payments in the `LiquidPledging` contract. +contract ILiquidPledging { + function confirmPayment(uint64 idPledge, uint amount) public; + function cancelPayment(uint64 idPledge, uint amount) public; +} + +/// @dev `LPVault` is a higher level contract built off of the `Escapable` +/// contract that holds funds for the liquid pledging system. +contract LPVault is EscapableApp, LiquidPledgingACLHelpers { + + bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); + bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); + bytes32 constant public AUTHORIZE_PAYMENT_ROLE = keccak256("AUTHORIZE_PAYMENT_ROLE"); + bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); + + event AutoPaySet(bool autoPay); + event EscapeFundsCalled(address token, uint amount); + event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); + event CancelPayment(uint indexed idPayment, bytes32 indexed ref); + event AuthorizePayment( + uint indexed idPayment, + bytes32 indexed ref, + address indexed dest, + address token, + uint amount + ); + + enum PaymentStatus { + Pending, // When the payment is awaiting confirmation + Paid, // When the payment has been sent + Canceled // When the payment will never be sent + } + + /// @dev `Payment` is a public structure that describes the details of + /// each payment the `ref` param makes it easy to track the movements of + /// funds transparently by its connection to other `Payment` structs + struct Payment { + bytes32 ref; // an input that references details from other contracts + address dest; // recipient of the ETH + PaymentStatus state; // Pending, Paid or Canceled + address token; + uint amount; // amount of ETH (in wei) to be sent + } + + bool public autoPay; // If false, payments will take 2 txs to be completed + + // @dev An array that contains all the payments for this LPVault + Payment[] public payments; + ILiquidPledging public liquidPledging; + + /// @dev The attached `LiquidPledging` contract is the only address that can + /// call a function with this modifier + modifier onlyLiquidPledging() { + require(msg.sender == address(liquidPledging)); + _; + } + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _liquidPledging + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { + super.initialize(_escapeHatchDestination); + + require(_liquidPledging != 0x0); + liquidPledging = ILiquidPledging(_liquidPledging); + } + + /// @notice Used to decentralize, toggles whether the LPVault will + /// automatically confirm a payment after the payment has been authorized + /// @param _automatic If true, payments will confirm instantly, if false + /// the training wheels are put on and the owner must manually approve + /// every payment + function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) { + autoPay = _automatic; + AutoPaySet(autoPay); + } + + /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner` + /// must call `confirmPayment()` for a transfer to occur (training wheels); + /// either way, a new payment is added to `payments[]` + /// @param _ref References the payment will normally be the pledgeID + /// @param _dest The address that payments will be sent to + /// @param _amount The amount that the payment is being authorized for + /// @return idPayment The id of the payment (needed by the owner to confirm) + function authorizePayment( + bytes32 _ref, + address _dest, + address _token, + uint _amount + ) external authP(AUTHORIZE_PAYMENT_ROLE, arr(_dest, _amount)) returns (uint) + { + uint idPayment = payments.length; + payments.length ++; + payments[idPayment].state = PaymentStatus.Pending; + payments[idPayment].ref = _ref; + payments[idPayment].dest = _dest; + payments[idPayment].token = _token; + payments[idPayment].amount = _amount; + + AuthorizePayment(idPayment, _ref, _dest, _token, _amount); + + if (autoPay) { + _doConfirmPayment(idPayment); + } + + return idPayment; + } + + /// @notice Allows the owner to confirm payments; since + /// `authorizePayment` is the only way to populate the `payments[]` array + /// this is generally used when `autopay` is `false` after a payment has + /// has been authorized + /// @param _idPayment Array lookup for the payment. + function confirmPayment(uint _idPayment) public { + _doConfirmPayment(_idPayment); + } + + /// @notice When `autopay` is `false` and after a payment has been authorized + /// to allow the owner to cancel a payment instead of confirming it. + /// @param _idPayment Array lookup for the payment. + function cancelPayment(uint _idPayment) public { + _doCancelPayment(_idPayment); + } + + /// @notice `onlyOwner` An efficient way to confirm multiple payments + /// @param _idPayments An array of multiple payment ids + function multiConfirm(uint[] _idPayments) external { + for (uint i = 0; i < _idPayments.length; i++) { + _doConfirmPayment(_idPayments[i]); + } + } + + /// @notice `onlyOwner` An efficient way to cancel multiple payments + /// @param _idPayments An array of multiple payment ids + function multiCancel(uint[] _idPayments) external { + for (uint i = 0; i < _idPayments.length; i++) { + _doCancelPayment(_idPayments[i]); + } + } + + /// Transfer tokens to the escapeHatchDestination. + /// Used as a safety mechanism to prevent the vault from holding too much value + /// before being thoroughly battle-tested. + /// @param _token to transfer + /// @param _amount to transfer + function escapeFunds(address _token, uint _amount) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(_token != 0x0); + ERC20 token = ERC20(_token); + uint balance = token.balanceOf(this); + require(balance >= _amount); + require(token.transfer(escapeHatchDestination, _amount)); + EscapeFundsCalled(_token, _amount); + } + + /// @return The total number of payments that have ever been authorized + function nPayments() public view returns (uint) { + return payments.length; + } + + /// @notice Transfers ETH according to the data held within the specified + /// payment id (internal function) + /// @param _idPayment id number for the payment about to be fulfilled + function _doConfirmPayment(uint _idPayment) internal { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); + + p.state = PaymentStatus.Paid; + liquidPledging.confirmPayment(uint64(p.ref), p.amount); + + ERC20 token = ERC20(p.token); + require(token.transfer(p.dest, p.amount)); // Transfers token to dest + + ConfirmPayment(_idPayment, p.ref); + } + + /// @notice Cancels a pending payment (internal function) + /// @param _idPayment id number for the payment + function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + + p.state = PaymentStatus.Canceled; + + liquidPledging.cancelPayment(uint64(p.ref), p.amount); + + CancelPayment(_idPayment, p.ref); + } +} + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} + + +///File: ./contracts/LiquidPledging.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +/// @dev `LiquidPledging` allows for liquid pledging through the use of +/// internal id structures and delegate chaining. All basic operations for +/// handling liquid pledging are supplied as well as plugin features +/// to allow for expanded functionality. +contract LiquidPledging is LiquidPledgingBase { + + + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public + { + addGiverAndDonate(idReceiver, msg.sender, token, amount); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver, token, amount); + } + + /// @notice This is how value enters the system and how pledges are created; + /// the ether is sent to the vault, an pledge for the Giver is created (or + /// found), the amount of ETH donated in wei is added to the `amount` in + /// the Giver's Pledge, and an LP transfer is done to the idReceiver for + /// the full amount + /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idReceiver The Admin receiving the donation; can be any Admin: + /// the Giver themselves, another Giver, a Delegate or a Project + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public + { + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + + PledgeAdmin storage sender = _findAdmin(idGiver); + require(sender.adminType == PledgeAdminType.Giver); + + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` + + uint64 idPledge = _findOrCreatePledge( + idGiver, + new uint64[](0), // Creates empty array for delegationChain + 0, + 0, + 0, + token, + PledgeState.Pledged + ); + + Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; + + Transfer(0, idPledge, amount); + + _transfer(idGiver, idPledge, amount, idReceiver); + } + + /// @notice Transfers amounts between pledges for internal accounting + /// @param idSender Id of the Admin that is transferring the amount from + /// Pledge to Pledge; this admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of ETH (in wei) that this pledge is transferring + /// the authority to withdraw from the vault + /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending + /// to a Giver, a Delegate or a Project; a Delegate sending to another + /// Delegate, or a Delegate pre-commiting it to a Project + function transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) public + { + checkAdminOwner(idSender); + _transfer(idSender, idPledge, amount, idReceiver); + } + + /// @notice Authorizes a payment be made from the `vault` can be used by the + /// Giver to veto a pre-committed donation from a Delegate to an + /// intendedProject + /// @param idPledge Id of the pledge that is to be redeemed into ether + /// @param amount Quantity of ether (in wei) to be authorized + function withdraw(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); // Updates pledge info + + Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + checkAdminOwner(p.owner); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paying + ); + + _doTransfer(idPledge, idNewPledge, amount); + + PledgeAdmin storage owner = _findAdmin(p.owner); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); + } + + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// from Paying to Paid + /// @param idPledge Id of the pledge that is to be withdrawn + /// @param amount Quantity of ether (in wei) to be withdrawn + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paid + ); + + _doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// from Paying back to Pledged + /// @param idPledge Id of the pledge that's withdraw is to be canceled + /// @param amount Quantity of ether (in wei) to be canceled + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + // When a payment is canceled, never is assigned to a project. + uint64 idOldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + + idOldPledge = normalizePledge(idOldPledge); + + _doTransfer(idPledge, idOldPledge, amount); + } + + /// @notice Changes the `project.canceled` flag to `true`; cannot be undone + /// @param idProject Id of the project that is to be canceled + function cancelProject(uint64 idProject) public { + PledgeAdmin storage project = _findAdmin(idProject); + checkAdminOwner(idProject); + project.canceled = true; + + CancelProject(idProject); + } + + /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that + /// that sent it there in the first place, a Ctrl-z + /// @param idPledge Id of the pledge that is to be canceled + /// @param amount Quantity of ether (in wei) to be transfered to the + /// `oldPledge` + function cancelPledge(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + require(p.oldPledge != 0); + checkAdminOwner(p.owner); + + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // @dev This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + + + /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods + uint constant D64 = 0x10000000000000000; + + /// @notice Transfers multiple amounts within multiple Pledges in an + /// efficient single call + /// @param idSender Id of the Admin that is transferring the amounts from + /// all the Pledges; this admin must have permissions to move the value + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or + /// Project sending to a Giver, a Delegate or a Project; a Delegate sending + /// to another Delegate, or a Delegate pre-commiting it to a Project + function mTransfer( + uint64 idSender, + uint[] pledgesAmounts, + uint64 idReceiver + ) public + { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + /// @notice Authorizes multiple amounts within multiple Pledges to be + /// withdrawn from the `vault` in an efficient single call + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + function mWithdraw(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mConfirmPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + /// @notice `mCancelPayment` allows for multiple pledges to be canceled + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mCancelPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + /// @notice `mNormalizePledge` allows for multiple pledges to be + /// normalized efficiently + /// @param pledges An array of pledge IDs + function mNormalizePledge(uint64[] pledges) public { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } +} + + +///File: ./contracts/LPConstants.sol + +pragma solidity ^0.4.18; + + + +contract LPConstants is KernelConstants { + bytes32 constant public VAULT_APP_ID = keccak256("vault"); + bytes32 constant public LP_APP_ID = keccak256("liquidPledging"); +} + +///File: ./contracts/LPFactory.sol + +pragma solidity ^0.4.18; + + + + + + +contract LPFactory is LPConstants, DAOFactory { + address public vaultBase; + address public lpBase; + + event DeployVault(address vault); + event DeployLiquidPledging(address liquidPledging); + + function LPFactory(address _vaultBase, address _lpBase) public DAOFactory(0) { + require(_vaultBase != 0); + require(_lpBase != 0); + vaultBase = _vaultBase; + lpBase = _lpBase; + } + + function newLP(address _root, address _escapeHatchDestination) public { + Kernel kernel = newDAO(this); + ACL acl = ACL(kernel.acl()); + + bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); + + acl.createPermission(this, address(kernel), appManagerRole, this); + + LPVault v = LPVault(kernel.newAppInstance(VAULT_APP_ID, vaultBase)); + LiquidPledging lp = LiquidPledging(kernel.newAppInstance(LP_APP_ID, lpBase)); + v.initialize(address(lp), _escapeHatchDestination); + lp.initialize(address(v), _escapeHatchDestination); + + // register the lp instance w/ the kernel + kernel.setApp(kernel.APP_ADDR_NAMESPACE(), LP_APP_ID, address(lp)); + + _setPermissions(_root, acl, kernel, v, lp); + } + + function _setPermissions(address _root, ACL acl, Kernel kernel, LPVault v, LiquidPledging lp) internal { + bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); + bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); + bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); + bytes32 authPaymentRole = v.AUTHORIZE_PAYMENT_ROLE(); + bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); + + acl.createPermission(_root, address(v), hatchCallerRole, _root); + acl.createPermission(_root, address(lp), hatchCallerRole, _root); + acl.createPermission(_root, address(lp), pluginManagerRole, _root); + acl.createPermission(address(lp), address(v), authPaymentRole, _root); + // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways + + acl.grantPermission(_root, address(kernel), appManagerRole); + acl.grantPermission(_root, address(acl), permRole); + acl.revokePermission(this, address(kernel), appManagerRole); + acl.revokePermission(this, address(acl), permRole); + + acl.setPermissionManager(_root, address(kernel), appManagerRole); + acl.setPermissionManager(_root, address(acl), permRole); + + DeployVault(address(v)); + DeployLiquidPledging(address(lp)); + } +} \ No newline at end of file diff --git a/build/LPVault.sol.js b/build/LPVault.sol.js new file mode 100644 index 0000000..9a9cd27 --- /dev/null +++ b/build/LPVault.sol.js @@ -0,0 +1,68 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingByteCode = "0x" +exports.ILiquidPledgingRuntimeByteCode = "0x" +exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"AUTHORIZE_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LPVaultByteCode = "0x6060604052341561000f57600080fd5b6118218061001e6000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" +exports.LPVaultRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" +exports['_./contracts/LPVault.sol_keccak256'] = "0xe15efc5feed73ddc4b350af232ffd35cdfcf241648f230b707d546e357c3819c" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPVault_all.sol b/build/LPVault_all.sol new file mode 100644 index 0000000..8890f0c --- /dev/null +++ b/build/LPVault_all.sol @@ -0,0 +1,827 @@ + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LPVault.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: RJ Ewing, Griff Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/// @dev This contract holds ether securely for liquid pledging systems; for +/// this iteration the funds will come often be escaped to the Giveth Multisig +/// (safety precaution), but once fully tested and optimized this contract will +/// be a safe place to store funds equipped with optional variable time delays +/// to allow for an optional escapeHatch to be implemented in case of issues; +/// future versions of this contract will be enabled for tokens + + + + +/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract +/// to confirm and cancel payments in the `LiquidPledging` contract. +contract ILiquidPledging { + function confirmPayment(uint64 idPledge, uint amount) public; + function cancelPayment(uint64 idPledge, uint amount) public; +} + +/// @dev `LPVault` is a higher level contract built off of the `Escapable` +/// contract that holds funds for the liquid pledging system. +contract LPVault is EscapableApp, LiquidPledgingACLHelpers { + + bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); + bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); + bytes32 constant public AUTHORIZE_PAYMENT_ROLE = keccak256("AUTHORIZE_PAYMENT_ROLE"); + bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); + + event AutoPaySet(bool autoPay); + event EscapeFundsCalled(address token, uint amount); + event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); + event CancelPayment(uint indexed idPayment, bytes32 indexed ref); + event AuthorizePayment( + uint indexed idPayment, + bytes32 indexed ref, + address indexed dest, + address token, + uint amount + ); + + enum PaymentStatus { + Pending, // When the payment is awaiting confirmation + Paid, // When the payment has been sent + Canceled // When the payment will never be sent + } + + /// @dev `Payment` is a public structure that describes the details of + /// each payment the `ref` param makes it easy to track the movements of + /// funds transparently by its connection to other `Payment` structs + struct Payment { + bytes32 ref; // an input that references details from other contracts + address dest; // recipient of the ETH + PaymentStatus state; // Pending, Paid or Canceled + address token; + uint amount; // amount of ETH (in wei) to be sent + } + + bool public autoPay; // If false, payments will take 2 txs to be completed + + // @dev An array that contains all the payments for this LPVault + Payment[] public payments; + ILiquidPledging public liquidPledging; + + /// @dev The attached `LiquidPledging` contract is the only address that can + /// call a function with this modifier + modifier onlyLiquidPledging() { + require(msg.sender == address(liquidPledging)); + _; + } + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _liquidPledging + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { + super.initialize(_escapeHatchDestination); + + require(_liquidPledging != 0x0); + liquidPledging = ILiquidPledging(_liquidPledging); + } + + /// @notice Used to decentralize, toggles whether the LPVault will + /// automatically confirm a payment after the payment has been authorized + /// @param _automatic If true, payments will confirm instantly, if false + /// the training wheels are put on and the owner must manually approve + /// every payment + function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) { + autoPay = _automatic; + AutoPaySet(autoPay); + } + + /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner` + /// must call `confirmPayment()` for a transfer to occur (training wheels); + /// either way, a new payment is added to `payments[]` + /// @param _ref References the payment will normally be the pledgeID + /// @param _dest The address that payments will be sent to + /// @param _amount The amount that the payment is being authorized for + /// @return idPayment The id of the payment (needed by the owner to confirm) + function authorizePayment( + bytes32 _ref, + address _dest, + address _token, + uint _amount + ) external authP(AUTHORIZE_PAYMENT_ROLE, arr(_dest, _amount)) returns (uint) + { + uint idPayment = payments.length; + payments.length ++; + payments[idPayment].state = PaymentStatus.Pending; + payments[idPayment].ref = _ref; + payments[idPayment].dest = _dest; + payments[idPayment].token = _token; + payments[idPayment].amount = _amount; + + AuthorizePayment(idPayment, _ref, _dest, _token, _amount); + + if (autoPay) { + _doConfirmPayment(idPayment); + } + + return idPayment; + } + + /// @notice Allows the owner to confirm payments; since + /// `authorizePayment` is the only way to populate the `payments[]` array + /// this is generally used when `autopay` is `false` after a payment has + /// has been authorized + /// @param _idPayment Array lookup for the payment. + function confirmPayment(uint _idPayment) public { + _doConfirmPayment(_idPayment); + } + + /// @notice When `autopay` is `false` and after a payment has been authorized + /// to allow the owner to cancel a payment instead of confirming it. + /// @param _idPayment Array lookup for the payment. + function cancelPayment(uint _idPayment) public { + _doCancelPayment(_idPayment); + } + + /// @notice `onlyOwner` An efficient way to confirm multiple payments + /// @param _idPayments An array of multiple payment ids + function multiConfirm(uint[] _idPayments) external { + for (uint i = 0; i < _idPayments.length; i++) { + _doConfirmPayment(_idPayments[i]); + } + } + + /// @notice `onlyOwner` An efficient way to cancel multiple payments + /// @param _idPayments An array of multiple payment ids + function multiCancel(uint[] _idPayments) external { + for (uint i = 0; i < _idPayments.length; i++) { + _doCancelPayment(_idPayments[i]); + } + } + + /// Transfer tokens to the escapeHatchDestination. + /// Used as a safety mechanism to prevent the vault from holding too much value + /// before being thoroughly battle-tested. + /// @param _token to transfer + /// @param _amount to transfer + function escapeFunds(address _token, uint _amount) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(_token != 0x0); + ERC20 token = ERC20(_token); + uint balance = token.balanceOf(this); + require(balance >= _amount); + require(token.transfer(escapeHatchDestination, _amount)); + EscapeFundsCalled(_token, _amount); + } + + /// @return The total number of payments that have ever been authorized + function nPayments() public view returns (uint) { + return payments.length; + } + + /// @notice Transfers ETH according to the data held within the specified + /// payment id (internal function) + /// @param _idPayment id number for the payment about to be fulfilled + function _doConfirmPayment(uint _idPayment) internal { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); + + p.state = PaymentStatus.Paid; + liquidPledging.confirmPayment(uint64(p.ref), p.amount); + + ERC20 token = ERC20(p.token); + require(token.transfer(p.dest, p.amount)); // Transfers token to dest + + ConfirmPayment(_idPayment, p.ref); + } + + /// @notice Cancels a pending payment (internal function) + /// @param _idPayment id number for the payment + function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + + p.state = PaymentStatus.Canceled; + + liquidPledging.cancelPayment(uint64(p.ref), p.amount); + + CancelPayment(_idPayment, p.ref); + } +} diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js new file mode 100644 index 0000000..0b8aee6 --- /dev/null +++ b/build/LiquidPledging.sol.js @@ -0,0 +1,92 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingACLHelpers.sol.js b/build/LiquidPledgingACLHelpers.sol.js new file mode 100644 index 0000000..da77561 --- /dev/null +++ b/build/LiquidPledgingACLHelpers.sol.js @@ -0,0 +1,7 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingACLHelpers_all.sol b/build/LiquidPledgingACLHelpers_all.sol new file mode 100644 index 0000000..0a3de70 --- /dev/null +++ b/build/LiquidPledgingACLHelpers_all.sol @@ -0,0 +1,25 @@ + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} \ No newline at end of file diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js new file mode 100644 index 0000000..1f37c27 --- /dev/null +++ b/build/LiquidPledgingBase.sol.js @@ -0,0 +1,88 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingBase_all.sol b/build/LiquidPledgingBase_all.sol new file mode 100644 index 0000000..08691c3 --- /dev/null +++ b/build/LiquidPledgingBase_all.sol @@ -0,0 +1,2054 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js new file mode 100644 index 0000000..3cb9fcd --- /dev/null +++ b/build/LiquidPledgingMock.sol.js @@ -0,0 +1,131 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" +exports.KernelConstantsRuntimeByteCode = "0x6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" +exports.KernelStorageAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.KernelStorageByteCode = "0x6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" +exports.KernelStorageRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" +exports['_@aragon/os/contracts/kernel/KernelStorage.sol_keccak256'] = "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e" +exports.IAppProxyAbi = [{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IAppProxyByteCode = "0x" +exports.IAppProxyRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/apps/IAppProxy.sol_keccak256'] = "0x4d5f398f887030d6d0b5045e0424b59d58abd718143289afcaf3e160d6c91736" +exports.DelegateProxyAbi = [] +exports.DelegateProxyByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" +exports.DelegateProxyRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" +exports['_@aragon/os/contracts/common/DelegateProxy.sol_keccak256'] = "0x81bab220700a9a5def3ac54278ccec046be0b1c333dba9567f7175e358414d87" +exports.AppProxyBaseAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.AppProxyBaseByteCode = "0x" +exports.AppProxyBaseRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/apps/AppProxyBase.sol_keccak256'] = "0x907218cac02c5f7a10873eb30fb1ffaecdd93527a0ff7e2f0305590bf585d06b" +exports.AppProxyUpgradeableAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pinnedCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.AppProxyUpgradeableByteCode = "0x6060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" +exports.AppProxyUpgradeableRuntimeByteCode = "0x6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" +exports['_@aragon/os/contracts/apps/AppProxyUpgradeable.sol_keccak256'] = "0x4613af6e313048b7de649d54630276fb18154dac5674f057109f0e0591f11cb2" +exports.AppProxyPinnedAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] +exports.AppProxyPinnedByteCode = "0x6060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" +exports.AppProxyPinnedRuntimeByteCode = "0x6060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" +exports['_@aragon/os/contracts/apps/AppProxyPinned.sol_keccak256'] = "0xfe66e88413adc4d60ae53352046bd23ebd0aeb3120599d445df19caa8b095c26" +exports.AppProxyFactoryAbi = [{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"}] +exports.AppProxyFactoryByteCode = "0x6060604052341561000f57600080fd5b61134b8061001e6000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" +exports.AppProxyFactoryRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" +exports['_@aragon/os/contracts/factory/AppProxyFactory.sol_keccak256'] = "0xa5314f57f93d8e633724bd9f94ad43f127c5b5466dcd0ef32fe0f78d5d431592" +exports.KernelAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_baseAcl","type":"address"},{"name":"_permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newPinnedAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_namespace","type":"bytes32"},{"name":"_name","type":"bytes32"},{"name":"_app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.KernelByteCode = "0x6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" +exports.KernelRuntimeByteCode = "0x606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" +exports['_@aragon/os/contracts/kernel/Kernel.sol_keccak256'] = "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d" +exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b6155a0806100286000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029" +exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029" +exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0x720f154a6ac388274e60351edea2b1b1f5493b52a1afc052040a678ef57eb62f" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol new file mode 100644 index 0000000..6d1c648 --- /dev/null +++ b/build/LiquidPledgingMock_all.sol @@ -0,0 +1,2754 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} + + +///File: ./contracts/LiquidPledging.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +/// @dev `LiquidPledging` allows for liquid pledging through the use of +/// internal id structures and delegate chaining. All basic operations for +/// handling liquid pledging are supplied as well as plugin features +/// to allow for expanded functionality. +contract LiquidPledging is LiquidPledgingBase { + + + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public + { + addGiverAndDonate(idReceiver, msg.sender, token, amount); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver, token, amount); + } + + /// @notice This is how value enters the system and how pledges are created; + /// the ether is sent to the vault, an pledge for the Giver is created (or + /// found), the amount of ETH donated in wei is added to the `amount` in + /// the Giver's Pledge, and an LP transfer is done to the idReceiver for + /// the full amount + /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idReceiver The Admin receiving the donation; can be any Admin: + /// the Giver themselves, another Giver, a Delegate or a Project + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public + { + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + + PledgeAdmin storage sender = _findAdmin(idGiver); + require(sender.adminType == PledgeAdminType.Giver); + + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` + + uint64 idPledge = _findOrCreatePledge( + idGiver, + new uint64[](0), // Creates empty array for delegationChain + 0, + 0, + 0, + token, + PledgeState.Pledged + ); + + Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; + + Transfer(0, idPledge, amount); + + _transfer(idGiver, idPledge, amount, idReceiver); + } + + /// @notice Transfers amounts between pledges for internal accounting + /// @param idSender Id of the Admin that is transferring the amount from + /// Pledge to Pledge; this admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of ETH (in wei) that this pledge is transferring + /// the authority to withdraw from the vault + /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending + /// to a Giver, a Delegate or a Project; a Delegate sending to another + /// Delegate, or a Delegate pre-commiting it to a Project + function transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) public + { + checkAdminOwner(idSender); + _transfer(idSender, idPledge, amount, idReceiver); + } + + /// @notice Authorizes a payment be made from the `vault` can be used by the + /// Giver to veto a pre-committed donation from a Delegate to an + /// intendedProject + /// @param idPledge Id of the pledge that is to be redeemed into ether + /// @param amount Quantity of ether (in wei) to be authorized + function withdraw(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); // Updates pledge info + + Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + checkAdminOwner(p.owner); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paying + ); + + _doTransfer(idPledge, idNewPledge, amount); + + PledgeAdmin storage owner = _findAdmin(p.owner); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); + } + + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// from Paying to Paid + /// @param idPledge Id of the pledge that is to be withdrawn + /// @param amount Quantity of ether (in wei) to be withdrawn + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paid + ); + + _doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// from Paying back to Pledged + /// @param idPledge Id of the pledge that's withdraw is to be canceled + /// @param amount Quantity of ether (in wei) to be canceled + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + // When a payment is canceled, never is assigned to a project. + uint64 idOldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + + idOldPledge = normalizePledge(idOldPledge); + + _doTransfer(idPledge, idOldPledge, amount); + } + + /// @notice Changes the `project.canceled` flag to `true`; cannot be undone + /// @param idProject Id of the project that is to be canceled + function cancelProject(uint64 idProject) public { + PledgeAdmin storage project = _findAdmin(idProject); + checkAdminOwner(idProject); + project.canceled = true; + + CancelProject(idProject); + } + + /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that + /// that sent it there in the first place, a Ctrl-z + /// @param idPledge Id of the pledge that is to be canceled + /// @param amount Quantity of ether (in wei) to be transfered to the + /// `oldPledge` + function cancelPledge(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + require(p.oldPledge != 0); + checkAdminOwner(p.owner); + + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // @dev This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + + + /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods + uint constant D64 = 0x10000000000000000; + + /// @notice Transfers multiple amounts within multiple Pledges in an + /// efficient single call + /// @param idSender Id of the Admin that is transferring the amounts from + /// all the Pledges; this admin must have permissions to move the value + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or + /// Project sending to a Giver, a Delegate or a Project; a Delegate sending + /// to another Delegate, or a Delegate pre-commiting it to a Project + function mTransfer( + uint64 idSender, + uint[] pledgesAmounts, + uint64 idReceiver + ) public + { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + /// @notice Authorizes multiple amounts within multiple Pledges to be + /// withdrawn from the `vault` in an efficient single call + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + function mWithdraw(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mConfirmPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + /// @notice `mCancelPayment` allows for multiple pledges to be canceled + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mCancelPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + /// @notice `mNormalizePledge` allows for multiple pledges to be + /// normalized efficiently + /// @param pledges An array of pledge IDs + function mNormalizePledge(uint64[] pledges) public { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } +} + + +///File: @aragon/os/contracts/kernel/KernelStorage.sol + +pragma solidity 0.4.18; + + +contract KernelConstants { + bytes32 constant public CORE_NAMESPACE = keccak256("core"); + bytes32 constant public APP_BASES_NAMESPACE = keccak256("base"); + bytes32 constant public APP_ADDR_NAMESPACE = keccak256("app"); + + bytes32 constant public KERNEL_APP_ID = keccak256("kernel.aragonpm.eth"); + bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID); + + bytes32 constant public ACL_APP_ID = keccak256("acl.aragonpm.eth"); + bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID); +} + + +contract KernelStorage is KernelConstants { + mapping (bytes32 => address) public apps; +} + + +///File: @aragon/os/contracts/apps/IAppProxy.sol + +pragma solidity 0.4.18; + +interface IAppProxy { + function isUpgradeable() public pure returns (bool); + function getCode() public view returns (address); +} + + +///File: @aragon/os/contracts/common/DelegateProxy.sol + +pragma solidity 0.4.18; + + +contract DelegateProxy { + /** + * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!) + * @param _dst Destination address to perform the delegatecall + * @param _calldata Calldata for the delegatecall + */ + function delegatedFwd(address _dst, bytes _calldata) internal { + require(isContract(_dst)); + assembly { + let result := delegatecall(sub(gas, 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0) + let size := returndatasize + + let ptr := mload(0x40) + returndatacopy(ptr, 0, size) + + // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. + // if the call returned error data, forward it + switch result case 0 { revert(ptr, size) } + default { return(ptr, size) } + } + } + + function isContract(address _target) internal view returns (bool) { + uint256 size; + assembly { size := extcodesize(_target) } + return size > 0; + } +} + + +///File: @aragon/os/contracts/apps/AppProxyBase.sol + +pragma solidity 0.4.18; + + + + + + + +contract AppProxyBase is IAppProxy, AppStorage, DelegateProxy, KernelConstants { + /** + * @dev Initialize AppProxy + * @param _kernel Reference to organization kernel for the app + * @param _appId Identifier for app + * @param _initializePayload Payload for call to be made after setup to initialize + */ + function AppProxyBase(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public { + kernel = _kernel; + appId = _appId; + + // Implicit check that kernel is actually a Kernel + // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to + // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on + // it. + address appCode = getAppBase(appId); + + // If initialize payload is provided, it will be executed + if (_initializePayload.length > 0) { + require(isContract(appCode)); + // Cannot make delegatecall as a delegateproxy.delegatedFwd as it + // returns ending execution context and halts contract deployment + require(appCode.delegatecall(_initializePayload)); + } + } + + function getAppBase(bytes32 _appId) internal view returns (address) { + return kernel.getApp(keccak256(APP_BASES_NAMESPACE, _appId)); + } + + function () payable public { + address target = getCode(); + require(target != 0); // if app code hasn't been set yet, don't call + delegatedFwd(target, msg.data); + } +} + +///File: @aragon/os/contracts/apps/AppProxyUpgradeable.sol + +pragma solidity 0.4.18; + + + + +contract AppProxyUpgradeable is AppProxyBase { + address public pinnedCode; + + /** + * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app) + * @param _kernel Reference to organization kernel for the app + * @param _appId Identifier for app + * @param _initializePayload Payload for call to be made after setup to initialize + */ + function AppProxyUpgradeable(IKernel _kernel, bytes32 _appId, bytes _initializePayload) + AppProxyBase(_kernel, _appId, _initializePayload) public + { + + } + + function getCode() public view returns (address) { + return getAppBase(appId); + } + + function isUpgradeable() public pure returns (bool) { + return true; + } +} + + +///File: @aragon/os/contracts/apps/AppProxyPinned.sol + +pragma solidity 0.4.18; + + + + +contract AppProxyPinned is AppProxyBase { + /** + * @dev Initialize AppProxyPinned (makes it an un-upgradeable Aragon app) + * @param _kernel Reference to organization kernel for the app + * @param _appId Identifier for app + * @param _initializePayload Payload for call to be made after setup to initialize + */ + function AppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) + AppProxyBase(_kernel, _appId, _initializePayload) public + { + pinnedCode = getAppBase(appId); + require(pinnedCode != address(0)); + } + + function getCode() public view returns (address) { + return pinnedCode; + } + + function isUpgradeable() public pure returns (bool) { + return false; + } + + function () payable public { + delegatedFwd(getCode(), msg.data); + } +} + +///File: @aragon/os/contracts/factory/AppProxyFactory.sol + +pragma solidity 0.4.18; + + + + + +contract AppProxyFactory { + event NewAppProxy(address proxy); + + function newAppProxy(IKernel _kernel, bytes32 _appId) public returns (AppProxyUpgradeable) { + return newAppProxy(_kernel, _appId, new bytes(0)); + } + + function newAppProxy(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyUpgradeable) { + AppProxyUpgradeable proxy = new AppProxyUpgradeable(_kernel, _appId, _initializePayload); + NewAppProxy(address(proxy)); + return proxy; + } + + function newAppProxyPinned(IKernel _kernel, bytes32 _appId) public returns (AppProxyPinned) { + return newAppProxyPinned(_kernel, _appId, new bytes(0)); + } + + function newAppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyPinned) { + AppProxyPinned proxy = new AppProxyPinned(_kernel, _appId, _initializePayload); + NewAppProxy(address(proxy)); + return proxy; + } +} + + +///File: @aragon/os/contracts/kernel/Kernel.sol + +pragma solidity 0.4.18; + + + + + + + + + +contract Kernel is IKernel, KernelStorage, Initializable, AppProxyFactory, ACLSyntaxSugar { + bytes32 constant public APP_MANAGER_ROLE = bytes32(1); + + /** + * @dev Initialize can only be called once. It saves the block number in which it was initialized. + * @notice Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions + * @param _baseAcl Address of base ACL app + * @param _permissionsCreator Entity that will be given permission over createPermission + */ + function initialize(address _baseAcl, address _permissionsCreator) onlyInit public { + initialized(); + + IACL acl = IACL(newAppProxy(this, ACL_APP_ID)); + + _setApp(APP_BASES_NAMESPACE, ACL_APP_ID, _baseAcl); + _setApp(APP_ADDR_NAMESPACE, ACL_APP_ID, acl); + + acl.initialize(_permissionsCreator); + } + + /** + * @dev Create a new instance of an app linked to this kernel and set its base + * implementation if it was not already set + * @param _name Name of the app + * @param _appBase Address of the app's base implementation + * @return AppProxy instance + */ + function newAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { + _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); + appProxy = newAppProxy(this, _name); + } + + /** + * @dev Create a new pinned instance of an app linked to this kernel and set + * its base implementation if it was not already set + * @param _name Name of the app + * @param _appBase Address of the app's base implementation + * @return AppProxy instance + */ + function newPinnedAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { + _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); + appProxy = newAppProxyPinned(this, _name); + } + + /** + * @dev Set the resolving address of an app instance or base implementation + * @param _namespace App namespace to use + * @param _name Name of the app + * @param _app Address of the app + * @return ID of app + */ + function setApp(bytes32 _namespace, bytes32 _name, address _app) auth(APP_MANAGER_ROLE, arr(_namespace, _name)) kernelIntegrity public returns (bytes32 id) { + return _setApp(_namespace, _name, _app); + } + + /** + * @dev Get the address of an app instance or base implementation + * @param _id App identifier + * @return Address of the app + */ + function getApp(bytes32 _id) public view returns (address) { + return apps[_id]; + } + + /** + * @dev Get the installed ACL app + * @return ACL app + */ + function acl() public view returns (IACL) { + return IACL(getApp(ACL_APP)); + } + + /** + * @dev Function called by apps to check ACL on kernel or to check permission status + * @param _who Sender of the original call + * @param _where Address of the app + * @param _what Identifier for a group of actions in app + * @param _how Extra data for ACL auth + * @return boolean indicating whether the ACL allows the role or not + */ + function hasPermission(address _who, address _where, bytes32 _what, bytes _how) public view returns (bool) { + return acl().hasPermission(_who, _where, _what, _how); + } + + function _setApp(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { + id = keccak256(_namespace, _name); + apps[id] = _app; + SetApp(_namespace, _name, id, _app); + } + + function _setAppIfNew(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { + id = keccak256(_namespace, _name); + + if (_app != address(0)) { + address app = getApp(id); + if (app != address(0)) { + require(app == _app); + } else { + apps[id] = _app; + SetApp(_namespace, _name, id, _app); + } + } + } + + modifier auth(bytes32 _role, uint256[] memory params) { + bytes memory how; + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + // Params is invalid from this point fwd + require(hasPermission(msg.sender, address(this), _role, how)); + _; + } + + modifier kernelIntegrity { + _; // After execution check integrity + address kernel = getApp(KERNEL_APP); + uint256 size; + assembly { size := extcodesize(kernel) } + require(size > 0); + } +} + + +///File: ./contracts/LiquidPledgingMock.sol + +pragma solidity ^0.4.11; +/* + Copyright 2017, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +// hack so that solcpiler will generate a contracts.Kernel object + + +/// @dev `LiquidPledgingMock` allows for mocking up +/// a `LiquidPledging` contract with the added ability +/// to manipulate the block time for testing purposes. +contract LiquidPledgingMock is LiquidPledging { + + uint public mock_time; + + /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` + /// instance and sets the mocked time to the current blocktime. + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_vault, _escapeHatchDestination); + mock_time = now; + } + + /// @dev `getTime` is a basic getter function for + /// the mock_time parameter + function _getTime() internal view returns (uint) { + return mock_time; + } + + /// @dev `setMockedTime` is a basic setter function for + /// the mock_time parameter + /// @param _t This is the value to which the mocked time + /// will be set. + function setMockedTime(uint _t) public { + mock_time = _t; + } +} diff --git a/build/LiquidPledgingPlugins.sol.js b/build/LiquidPledgingPlugins.sol.js new file mode 100644 index 0000000..6e8e331 --- /dev/null +++ b/build/LiquidPledgingPlugins.sol.js @@ -0,0 +1,68 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingPlugins_all.sol b/build/LiquidPledgingPlugins_all.sol new file mode 100644 index 0000000..2757e12 --- /dev/null +++ b/build/LiquidPledgingPlugins_all.sol @@ -0,0 +1,709 @@ + + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} \ No newline at end of file diff --git a/build/LiquidPledgingStorage.sol.js b/build/LiquidPledgingStorage.sol.js new file mode 100644 index 0000000..49d4f6f --- /dev/null +++ b/build/LiquidPledgingStorage.sol.js @@ -0,0 +1,14 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingStorage_all.sol b/build/LiquidPledgingStorage_all.sol new file mode 100644 index 0000000..e80e110 --- /dev/null +++ b/build/LiquidPledgingStorage_all.sol @@ -0,0 +1,156 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} \ No newline at end of file diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol new file mode 100644 index 0000000..a3bdfb5 --- /dev/null +++ b/build/LiquidPledging_all.sol @@ -0,0 +1,2347 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} + + +///File: ./contracts/LiquidPledging.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +/// @dev `LiquidPledging` allows for liquid pledging through the use of +/// internal id structures and delegate chaining. All basic operations for +/// handling liquid pledging are supplied as well as plugin features +/// to allow for expanded functionality. +contract LiquidPledging is LiquidPledgingBase { + + + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public + { + addGiverAndDonate(idReceiver, msg.sender, token, amount); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver, token, amount); + } + + /// @notice This is how value enters the system and how pledges are created; + /// the ether is sent to the vault, an pledge for the Giver is created (or + /// found), the amount of ETH donated in wei is added to the `amount` in + /// the Giver's Pledge, and an LP transfer is done to the idReceiver for + /// the full amount + /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idReceiver The Admin receiving the donation; can be any Admin: + /// the Giver themselves, another Giver, a Delegate or a Project + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public + { + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + + PledgeAdmin storage sender = _findAdmin(idGiver); + require(sender.adminType == PledgeAdminType.Giver); + + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` + + uint64 idPledge = _findOrCreatePledge( + idGiver, + new uint64[](0), // Creates empty array for delegationChain + 0, + 0, + 0, + token, + PledgeState.Pledged + ); + + Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; + + Transfer(0, idPledge, amount); + + _transfer(idGiver, idPledge, amount, idReceiver); + } + + /// @notice Transfers amounts between pledges for internal accounting + /// @param idSender Id of the Admin that is transferring the amount from + /// Pledge to Pledge; this admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of ETH (in wei) that this pledge is transferring + /// the authority to withdraw from the vault + /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending + /// to a Giver, a Delegate or a Project; a Delegate sending to another + /// Delegate, or a Delegate pre-commiting it to a Project + function transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) public + { + checkAdminOwner(idSender); + _transfer(idSender, idPledge, amount, idReceiver); + } + + /// @notice Authorizes a payment be made from the `vault` can be used by the + /// Giver to veto a pre-committed donation from a Delegate to an + /// intendedProject + /// @param idPledge Id of the pledge that is to be redeemed into ether + /// @param amount Quantity of ether (in wei) to be authorized + function withdraw(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); // Updates pledge info + + Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + checkAdminOwner(p.owner); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paying + ); + + _doTransfer(idPledge, idNewPledge, amount); + + PledgeAdmin storage owner = _findAdmin(p.owner); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); + } + + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// from Paying to Paid + /// @param idPledge Id of the pledge that is to be withdrawn + /// @param amount Quantity of ether (in wei) to be withdrawn + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paid + ); + + _doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// from Paying back to Pledged + /// @param idPledge Id of the pledge that's withdraw is to be canceled + /// @param amount Quantity of ether (in wei) to be canceled + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + // When a payment is canceled, never is assigned to a project. + uint64 idOldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + + idOldPledge = normalizePledge(idOldPledge); + + _doTransfer(idPledge, idOldPledge, amount); + } + + /// @notice Changes the `project.canceled` flag to `true`; cannot be undone + /// @param idProject Id of the project that is to be canceled + function cancelProject(uint64 idProject) public { + PledgeAdmin storage project = _findAdmin(idProject); + checkAdminOwner(idProject); + project.canceled = true; + + CancelProject(idProject); + } + + /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that + /// that sent it there in the first place, a Ctrl-z + /// @param idPledge Id of the pledge that is to be canceled + /// @param amount Quantity of ether (in wei) to be transfered to the + /// `oldPledge` + function cancelPledge(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + require(p.oldPledge != 0); + checkAdminOwner(p.owner); + + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // @dev This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + + + /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods + uint constant D64 = 0x10000000000000000; + + /// @notice Transfers multiple amounts within multiple Pledges in an + /// efficient single call + /// @param idSender Id of the Admin that is transferring the amounts from + /// all the Pledges; this admin must have permissions to move the value + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or + /// Project sending to a Giver, a Delegate or a Project; a Delegate sending + /// to another Delegate, or a Delegate pre-commiting it to a Project + function mTransfer( + uint64 idSender, + uint[] pledgesAmounts, + uint64 idReceiver + ) public + { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + /// @notice Authorizes multiple amounts within multiple Pledges to be + /// withdrawn from the `vault` in an efficient single call + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + function mWithdraw(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mConfirmPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + /// @notice `mCancelPayment` allows for multiple pledges to be canceled + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mCancelPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + /// @notice `mNormalizePledge` allows for multiple pledges to be + /// normalized efficiently + /// @param pledges An array of pledge IDs + function mNormalizePledge(uint64[] pledges) public { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } +} diff --git a/build/PledgeAdmins.sol.js b/build/PledgeAdmins.sol.js new file mode 100644 index 0000000..f8940bd --- /dev/null +++ b/build/PledgeAdmins.sol.js @@ -0,0 +1,72 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/PledgeAdmins_all.sol b/build/PledgeAdmins_all.sol new file mode 100644 index 0000000..ed29c2a --- /dev/null +++ b/build/PledgeAdmins_all.sol @@ -0,0 +1,1072 @@ + + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} \ No newline at end of file diff --git a/build/Pledges.sol.js b/build/Pledges.sol.js new file mode 100644 index 0000000..3d4e108 --- /dev/null +++ b/build/Pledges.sol.js @@ -0,0 +1,64 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/Pledges_all.sol b/build/Pledges_all.sol new file mode 100644 index 0000000..4ebc643 --- /dev/null +++ b/build/Pledges_all.sol @@ -0,0 +1,757 @@ + + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} diff --git a/build/StandardToken.sol.js b/build/StandardToken.sol.js new file mode 100644 index 0000000..cf0710e --- /dev/null +++ b/build/StandardToken.sol.js @@ -0,0 +1,7 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.StandardTokenAbi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.StandardTokenByteCode = "0x6060604052341561000f57600080fd5b60038054600160a060020a03191633600160a060020a031617905561063e806100396000396000f3006060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029" +exports.StandardTokenRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029" +exports['_./contracts/test/StandardToken.sol_keccak256'] = "0x9a4ae5b291b2fdb616bf902bff927d7b1bd0c1f3bcd6f0745f8e0c13dbb0ae55" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/StandardToken_all.sol b/build/StandardToken_all.sol new file mode 100644 index 0000000..ab0fb8c --- /dev/null +++ b/build/StandardToken_all.sol @@ -0,0 +1,155 @@ + + +///File: ./contracts/test/StandardToken.sol + +pragma solidity ^0.4.18; + +/** + * WARNING: This token is for testing purposes only + * and has been modified from the original version: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC20/StandardToken.sol + * + * @title Standard ERC20 token + * + * @dev Implementation of the basic standard token. + * @dev https://github.com/ethereum/EIPs/issues/20 + * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol + */ +contract StandardToken { + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); + + mapping (address => mapping (address => uint256)) internal allowed; + mapping(address => uint256) balances; + + uint256 totalSupply_; + address owner; + + function StandardToken() public { + owner = msg.sender; + } + + modifier onlyOwner() { + require(msg.sender == owner); + _; + } + + /** + * @dev total number of tokens in existence + */ + function totalSupply() public view returns (uint256) { + return totalSupply_; + } + + function mint(address _to, uint _value) public onlyOwner { + totalSupply_ += _value; + balances[_to] += _value; + Transfer(0, _to, _value); + } + + /** + * @dev transfer token for a specified address + * @param _to The address to transfer to. + * @param _value The amount to be transferred. + */ + function transfer(address _to, uint256 _value) public returns (bool) { + require(_to != address(0)); + require(_value <= balances[msg.sender]); + + // SafeMath.sub will throw if there is not enough balance. + balances[msg.sender] = balances[msg.sender] - _value; + balances[_to] = balances[_to] + _value; + Transfer(msg.sender, _to, _value); + return true; + } + + /** + * @dev Gets the balance of the specified address. + * @param _owner The address to query the the balance of. + * @return An uint256 representing the amount owned by the passed address. + */ + function balanceOf(address _owner) public view returns (uint256 balance) { + return balances[_owner]; + } + /** + * @dev Transfer tokens from one address to another + * @param _from address The address which you want to send tokens from + * @param _to address The address which you want to transfer to + * @param _value uint256 the amount of tokens to be transferred + */ + function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { + require(_to != address(0)); + require(_value <= balances[_from]); + require(_value <= allowed[_from][msg.sender]); + + balances[_from] = balances[_from] - _value; + balances[_to] = balances[_to] + _value; + allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value; + Transfer(_from, _to, _value); + return true; + } + + /** + * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. + * + * Beware that changing an allowance with this method brings the risk that someone may use both the old + * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this + * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * @param _spender The address which will spend the funds. + * @param _value The amount of tokens to be spent. + */ + function approve(address _spender, uint256 _value) public returns (bool) { + allowed[msg.sender][_spender] = _value; + Approval(msg.sender, _spender, _value); + return true; + } + + /** + * @dev Function to check the amount of tokens that an owner allowed to a spender. + * @param _owner address The address which owns the funds. + * @param _spender address The address which will spend the funds. + * @return A uint256 specifying the amount of tokens still available for the spender. + */ + function allowance(address _owner, address _spender) public view returns (uint256) { + return allowed[_owner][_spender]; + } + + /** + * @dev Increase the amount of tokens that an owner allowed to a spender. + * + * approve should be called when allowed[_spender] == 0. To increment + * allowed value is better to use this function to avoid 2 calls (and wait until + * the first transaction is mined) + * From MonolithDAO Token.sol + * @param _spender The address which will spend the funds. + * @param _addedValue The amount of tokens to increase the allowance by. + */ + function increaseApproval(address _spender, uint _addedValue) public returns (bool) { + allowed[msg.sender][_spender] = allowed[msg.sender][_spender] + _addedValue; + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; + } + + /** + * @dev Decrease the amount of tokens that an owner allowed to a spender. + * + * approve should be called when allowed[_spender] == 0. To decrement + * allowed value is better to use this function to avoid 2 calls (and wait until + * the first transaction is mined) + * From MonolithDAO Token.sol + * @param _spender The address which will spend the funds. + * @param _subtractedValue The amount of tokens to decrease the allowance by. + */ + function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { + uint oldValue = allowed[msg.sender][_spender]; + if (_subtractedValue > oldValue) { + allowed[msg.sender][_spender] = 0; + } else { + allowed[msg.sender][_spender] = oldValue - _subtractedValue; + } + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; + } + +} \ No newline at end of file diff --git a/build/TestSimpleDelegatePlugin.sol.js b/build/TestSimpleDelegatePlugin.sol.js new file mode 100644 index 0000000..2f9670a --- /dev/null +++ b/build/TestSimpleDelegatePlugin.sol.js @@ -0,0 +1,99 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.TestSimpleDelegatePluginAbi = [{"constant":true,"inputs":[],"name":"idDelegate","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_liquidPledging","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] +exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029" +exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029" +exports.TestSimpleDelegatePluginFactoryAbi = [{"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] +exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd966500296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029" +exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd96650029" +exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xfde1c913002ece2fae9c5b208971d9b1f56b2a30762e673901c6d2131d28919f" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleDelegatePlugin_all.sol b/build/TestSimpleDelegatePlugin_all.sol new file mode 100644 index 0000000..ac55022 --- /dev/null +++ b/build/TestSimpleDelegatePlugin_all.sol @@ -0,0 +1,2418 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} + + +///File: ./contracts/LiquidPledging.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +/// @dev `LiquidPledging` allows for liquid pledging through the use of +/// internal id structures and delegate chaining. All basic operations for +/// handling liquid pledging are supplied as well as plugin features +/// to allow for expanded functionality. +contract LiquidPledging is LiquidPledgingBase { + + + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public + { + addGiverAndDonate(idReceiver, msg.sender, token, amount); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver, token, amount); + } + + /// @notice This is how value enters the system and how pledges are created; + /// the ether is sent to the vault, an pledge for the Giver is created (or + /// found), the amount of ETH donated in wei is added to the `amount` in + /// the Giver's Pledge, and an LP transfer is done to the idReceiver for + /// the full amount + /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idReceiver The Admin receiving the donation; can be any Admin: + /// the Giver themselves, another Giver, a Delegate or a Project + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public + { + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + + PledgeAdmin storage sender = _findAdmin(idGiver); + require(sender.adminType == PledgeAdminType.Giver); + + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` + + uint64 idPledge = _findOrCreatePledge( + idGiver, + new uint64[](0), // Creates empty array for delegationChain + 0, + 0, + 0, + token, + PledgeState.Pledged + ); + + Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; + + Transfer(0, idPledge, amount); + + _transfer(idGiver, idPledge, amount, idReceiver); + } + + /// @notice Transfers amounts between pledges for internal accounting + /// @param idSender Id of the Admin that is transferring the amount from + /// Pledge to Pledge; this admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of ETH (in wei) that this pledge is transferring + /// the authority to withdraw from the vault + /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending + /// to a Giver, a Delegate or a Project; a Delegate sending to another + /// Delegate, or a Delegate pre-commiting it to a Project + function transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) public + { + checkAdminOwner(idSender); + _transfer(idSender, idPledge, amount, idReceiver); + } + + /// @notice Authorizes a payment be made from the `vault` can be used by the + /// Giver to veto a pre-committed donation from a Delegate to an + /// intendedProject + /// @param idPledge Id of the pledge that is to be redeemed into ether + /// @param amount Quantity of ether (in wei) to be authorized + function withdraw(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); // Updates pledge info + + Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + checkAdminOwner(p.owner); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paying + ); + + _doTransfer(idPledge, idNewPledge, amount); + + PledgeAdmin storage owner = _findAdmin(p.owner); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); + } + + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// from Paying to Paid + /// @param idPledge Id of the pledge that is to be withdrawn + /// @param amount Quantity of ether (in wei) to be withdrawn + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paid + ); + + _doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// from Paying back to Pledged + /// @param idPledge Id of the pledge that's withdraw is to be canceled + /// @param amount Quantity of ether (in wei) to be canceled + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + // When a payment is canceled, never is assigned to a project. + uint64 idOldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + + idOldPledge = normalizePledge(idOldPledge); + + _doTransfer(idPledge, idOldPledge, amount); + } + + /// @notice Changes the `project.canceled` flag to `true`; cannot be undone + /// @param idProject Id of the project that is to be canceled + function cancelProject(uint64 idProject) public { + PledgeAdmin storage project = _findAdmin(idProject); + checkAdminOwner(idProject); + project.canceled = true; + + CancelProject(idProject); + } + + /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that + /// that sent it there in the first place, a Ctrl-z + /// @param idPledge Id of the pledge that is to be canceled + /// @param amount Quantity of ether (in wei) to be transfered to the + /// `oldPledge` + function cancelPledge(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + require(p.oldPledge != 0); + checkAdminOwner(p.owner); + + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // @dev This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + + + /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods + uint constant D64 = 0x10000000000000000; + + /// @notice Transfers multiple amounts within multiple Pledges in an + /// efficient single call + /// @param idSender Id of the Admin that is transferring the amounts from + /// all the Pledges; this admin must have permissions to move the value + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or + /// Project sending to a Giver, a Delegate or a Project; a Delegate sending + /// to another Delegate, or a Delegate pre-commiting it to a Project + function mTransfer( + uint64 idSender, + uint[] pledgesAmounts, + uint64 idReceiver + ) public + { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + /// @notice Authorizes multiple amounts within multiple Pledges to be + /// withdrawn from the `vault` in an efficient single call + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + function mWithdraw(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mConfirmPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + /// @notice `mCancelPayment` allows for multiple pledges to be canceled + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mCancelPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + /// @notice `mNormalizePledge` allows for multiple pledges to be + /// normalized efficiently + /// @param pledges An array of pledge IDs + function mNormalizePledge(uint64[] pledges) public { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } +} + + +///File: ./contracts/test/TestSimpleDelegatePlugin.sol + +pragma solidity ^0.4.11; + + + +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleDelegatePlugin { + + uint64 public idDelegate; + LiquidPledging liquidPledging; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + liquidPledging = _liquidPledging; + initPending = true; + } + + function init( + string name, + string url, + uint64 commitTime + ) { + require(initPending); + idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} + +contract TestSimpleDelegatePluginFactory { + + function TestSimpleDelegatePluginFactory ( + LiquidPledging liquidPledging, + string name, + string url, + uint64 commitTime + ) { + TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); + d.init(name, url, commitTime); + } + +} diff --git a/build/TestSimpleProjectPlugin.sol.js b/build/TestSimpleProjectPlugin.sol.js new file mode 100644 index 0000000..20f3ee2 --- /dev/null +++ b/build/TestSimpleProjectPlugin.sol.js @@ -0,0 +1,96 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" +exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory.sol.js b/build/TestSimpleProjectPluginFactory.sol.js new file mode 100644 index 0000000..84c7f83 --- /dev/null +++ b/build/TestSimpleProjectPluginFactory.sol.js @@ -0,0 +1,100 @@ +/* This is an autogenerated file. DO NOT EDIT MANUALLY */ + +exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingPluginByteCode = "0x" +exports.ILiquidPledgingPluginRuntimeByteCode = "0x" +exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" +exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILPVaultByteCode = "0x" +exports.ILPVaultRuntimeByteCode = "0x" +exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" +exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" +exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.IACLByteCode = "0x" +exports.IACLRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" +exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] +exports.IKernelByteCode = "0x" +exports.IKernelRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" +exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" +exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" +exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" +exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" +exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptExecutorByteCode = "0x" +exports.IEVMScriptExecutorRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" +exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" +exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.IEVMScriptRegistryByteCode = "0x" +exports.IEVMScriptRegistryRuntimeByteCode = "0x" +exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" +exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] +exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" +exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" +exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" +exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" +exports.ACLHelpersAbi = [] +exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" +exports.ACLSyntaxSugarAbi = [] +exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" +exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" +exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" +exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" +exports.LiquidPledgingACLHelpersAbi = [] +exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" +exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] +exports.ERC20ByteCode = "0x" +exports.ERC20RuntimeByteCode = "0x" +exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" +exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" +exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029" +exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029" +exports['_./contracts/test/TestSimpleProjectPluginFactory.sol_keccak256'] = "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08" +exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory_all.sol b/build/TestSimpleProjectPluginFactory_all.sol new file mode 100644 index 0000000..9028831 --- /dev/null +++ b/build/TestSimpleProjectPluginFactory_all.sol @@ -0,0 +1,2426 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} + + +///File: ./contracts/LiquidPledging.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +/// @dev `LiquidPledging` allows for liquid pledging through the use of +/// internal id structures and delegate chaining. All basic operations for +/// handling liquid pledging are supplied as well as plugin features +/// to allow for expanded functionality. +contract LiquidPledging is LiquidPledgingBase { + + + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public + { + addGiverAndDonate(idReceiver, msg.sender, token, amount); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver, token, amount); + } + + /// @notice This is how value enters the system and how pledges are created; + /// the ether is sent to the vault, an pledge for the Giver is created (or + /// found), the amount of ETH donated in wei is added to the `amount` in + /// the Giver's Pledge, and an LP transfer is done to the idReceiver for + /// the full amount + /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idReceiver The Admin receiving the donation; can be any Admin: + /// the Giver themselves, another Giver, a Delegate or a Project + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public + { + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + + PledgeAdmin storage sender = _findAdmin(idGiver); + require(sender.adminType == PledgeAdminType.Giver); + + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` + + uint64 idPledge = _findOrCreatePledge( + idGiver, + new uint64[](0), // Creates empty array for delegationChain + 0, + 0, + 0, + token, + PledgeState.Pledged + ); + + Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; + + Transfer(0, idPledge, amount); + + _transfer(idGiver, idPledge, amount, idReceiver); + } + + /// @notice Transfers amounts between pledges for internal accounting + /// @param idSender Id of the Admin that is transferring the amount from + /// Pledge to Pledge; this admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of ETH (in wei) that this pledge is transferring + /// the authority to withdraw from the vault + /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending + /// to a Giver, a Delegate or a Project; a Delegate sending to another + /// Delegate, or a Delegate pre-commiting it to a Project + function transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) public + { + checkAdminOwner(idSender); + _transfer(idSender, idPledge, amount, idReceiver); + } + + /// @notice Authorizes a payment be made from the `vault` can be used by the + /// Giver to veto a pre-committed donation from a Delegate to an + /// intendedProject + /// @param idPledge Id of the pledge that is to be redeemed into ether + /// @param amount Quantity of ether (in wei) to be authorized + function withdraw(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); // Updates pledge info + + Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + checkAdminOwner(p.owner); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paying + ); + + _doTransfer(idPledge, idNewPledge, amount); + + PledgeAdmin storage owner = _findAdmin(p.owner); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); + } + + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// from Paying to Paid + /// @param idPledge Id of the pledge that is to be withdrawn + /// @param amount Quantity of ether (in wei) to be withdrawn + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paid + ); + + _doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// from Paying back to Pledged + /// @param idPledge Id of the pledge that's withdraw is to be canceled + /// @param amount Quantity of ether (in wei) to be canceled + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + // When a payment is canceled, never is assigned to a project. + uint64 idOldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + + idOldPledge = normalizePledge(idOldPledge); + + _doTransfer(idPledge, idOldPledge, amount); + } + + /// @notice Changes the `project.canceled` flag to `true`; cannot be undone + /// @param idProject Id of the project that is to be canceled + function cancelProject(uint64 idProject) public { + PledgeAdmin storage project = _findAdmin(idProject); + checkAdminOwner(idProject); + project.canceled = true; + + CancelProject(idProject); + } + + /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that + /// that sent it there in the first place, a Ctrl-z + /// @param idPledge Id of the pledge that is to be canceled + /// @param amount Quantity of ether (in wei) to be transfered to the + /// `oldPledge` + function cancelPledge(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + require(p.oldPledge != 0); + checkAdminOwner(p.owner); + + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // @dev This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + + + /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods + uint constant D64 = 0x10000000000000000; + + /// @notice Transfers multiple amounts within multiple Pledges in an + /// efficient single call + /// @param idSender Id of the Admin that is transferring the amounts from + /// all the Pledges; this admin must have permissions to move the value + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or + /// Project sending to a Giver, a Delegate or a Project; a Delegate sending + /// to another Delegate, or a Delegate pre-commiting it to a Project + function mTransfer( + uint64 idSender, + uint[] pledgesAmounts, + uint64 idReceiver + ) public + { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + /// @notice Authorizes multiple amounts within multiple Pledges to be + /// withdrawn from the `vault` in an efficient single call + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + function mWithdraw(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mConfirmPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + /// @notice `mCancelPayment` allows for multiple pledges to be canceled + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mCancelPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + /// @notice `mNormalizePledge` allows for multiple pledges to be + /// normalized efficiently + /// @param pledges An array of pledge IDs + function mNormalizePledge(uint64[] pledges) public { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } +} + + +///File: ./contracts/test/TestSimpleProjectPlugin.sol + +pragma solidity ^0.4.11; + + + +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleProjectPlugin { + + uint64 public idProject; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleProjectPlugin() { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + initPending = true; + } + + function init( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + require(initPending); + idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} + + +///File: ./contracts/test/TestSimpleProjectPluginFactory.sol + +pragma solidity ^0.4.11; + + + + +// simple factory for deploying TestSimpleProjectPlugin.sol contract +contract TestSimpleProjectPluginFactory { + + function deploy( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + TestSimpleProjectPlugin p = new TestSimpleProjectPlugin(); + p.init(liquidPledging, name, url, parentProject); + } + +} diff --git a/build/TestSimpleProjectPlugin_all.sol b/build/TestSimpleProjectPlugin_all.sol new file mode 100644 index 0000000..a6ff0a6 --- /dev/null +++ b/build/TestSimpleProjectPlugin_all.sol @@ -0,0 +1,2403 @@ + + +///File: ./contracts/ILiquidPledgingPlugin.sol + +pragma solidity ^0.4.11; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +/// @dev `ILiquidPledgingPlugin` is the basic interface for any +/// liquid pledging plugin +contract ILiquidPledgingPlugin { + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated before a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function beforeTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount ) public returns (uint maxAllowed); + + /// @notice Plugins are used (much like web hooks) to initiate an action + /// upon any donation, delegation, or transfer; this is an optional feature + /// and allows for extreme customization of the contract. This function + /// implements any action that should be initiated after a transfer. + /// @param pledgeManager The admin or current manager of the pledge + /// @param pledgeFrom This is the Id from which value will be transfered. + /// @param pledgeTo This is the Id that value will be transfered to. + /// @param context The situation that is triggering the plugin: + /// 0 -> Plugin for the owner transferring pledge to another party + /// 1 -> Plugin for the first delegate transferring pledge to another party + /// 2 -> Plugin for the second delegate transferring pledge to another party + /// ... + /// 255 -> Plugin for the intendedProject transferring pledge to another party + /// + /// 256 -> Plugin for the owner receiving pledge to another party + /// 257 -> Plugin for the first delegate receiving pledge to another party + /// 258 -> Plugin for the second delegate receiving pledge to another party + /// ... + /// 511 -> Plugin for the intendedProject receiving pledge to another party + /// @param amount The amount of value that will be transfered. + function afterTransfer( + uint64 pledgeManager, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + address token, + uint amount + ) public; +} + + +///File: ./contracts/LiquidPledgingStorage.sol + +pragma solidity ^0.4.18; + + + +/// @dev This is an interface for `LPVault` which serves as a secure storage for +/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes +/// payments can Pledges be converted for ETH +interface ILPVault { + function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; +} + +/// This contract contains all state variables used in LiquidPledging contracts +/// This is done to have everything in 1 location, b/c state variable layout +/// is MUST have be the same when performing an upgrade. +contract LiquidPledgingStorage { + enum PledgeAdminType { Giver, Delegate, Project } + enum PledgeState { Pledged, Paying, Paid } + + /// @dev This struct defines the details of a `PledgeAdmin` which are + /// commonly referenced by their index in the `admins` array + /// and can own pledges and act as delegates + struct PledgeAdmin { + PledgeAdminType adminType; // Giver, Delegate or Project + address addr; // Account or contract address for admin + uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto + uint64 parentProject; // Only for projects + bool canceled; //Always false except for canceled projects + + /// @dev if the plugin is 0x0 then nothing happens, if its an address + // than that smart contract is called when appropriate + ILiquidPledgingPlugin plugin; + string name; + string url; // Can be IPFS hash + } + + struct Pledge { + uint amount; + uint64[] delegationChain; // List of delegates in order of authority + uint64 owner; // PledgeAdmin + uint64 intendedProject; // Used when delegates are sending to projects + uint64 commitTime; // When the intendedProject will become the owner + uint64 oldPledge; // Points to the id that this Pledge was derived from + address token; + PledgeState pledgeState; // Pledged, Paying, Paid + } + + PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin + Pledge[] pledges; + /// @dev this mapping allows you to search for a specific pledge's + /// index number by the hash of that pledge + mapping (bytes32 => uint64) hPledge2idx; + + // this whitelist is for non-proxied plugins + mapping (bytes32 => bool) pluginContractWhitelist; + // this whitelist is for proxied plugins + mapping (address => bool) pluginInstanceWhitelist; + bool public whitelistDisabled = false; + + ILPVault public vault; + + // reserve 50 slots for future upgrades. I'm not sure if this is necessary + // but b/c of multiple inheritance used in lp, better safe then sorry. + // especially since it is free + uint[50] private storageOffset; +} + +///File: @aragon/os/contracts/acl/IACL.sol + +pragma solidity ^0.4.18; + + +interface IACL { + function initialize(address permissionsCreator) public; + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); +} + + +///File: @aragon/os/contracts/kernel/IKernel.sol + +pragma solidity ^0.4.18; + + + +interface IKernel { + event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); + + function acl() public view returns (IACL); + function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); + + function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); + function getApp(bytes32 id) public view returns (address); +} + +///File: @aragon/os/contracts/apps/AppStorage.sol + +pragma solidity ^0.4.18; + + + + +contract AppStorage { + IKernel public kernel; + bytes32 public appId; + address internal pinnedCode; // used by Proxy Pinned + uint256 internal initializationBlock; // used by Initializable + uint256[95] private storageOffset; // forces App storage to start at after 100 slots + uint256 private offset; +} + + +///File: @aragon/os/contracts/common/Initializable.sol + +pragma solidity ^0.4.18; + + + + +contract Initializable is AppStorage { + modifier onlyInit { + require(initializationBlock == 0); + _; + } + + /** + * @return Block number in which the contract was initialized + */ + function getInitializationBlock() public view returns (uint256) { + return initializationBlock; + } + + /** + * @dev Function to be called by top level contract after initialization has finished. + */ + function initialized() internal onlyInit { + initializationBlock = getBlockNumber(); + } + + /** + * @dev Returns the current block number. + * Using a function rather than `block.number` allows us to easily mock the block number in + * tests. + */ + function getBlockNumber() internal view returns (uint256) { + return block.number; + } +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol + +pragma solidity ^0.4.18; + + +interface IEVMScriptExecutor { + function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); +} + + +///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol + +pragma solidity 0.4.18; + + +contract EVMScriptRegistryConstants { + bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); + bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); +} + + +interface IEVMScriptRegistry { + function addScriptExecutor(address executor) external returns (uint id); + function disableScriptExecutor(uint256 executorId) external; + + function getScriptExecutor(bytes script) public view returns (address); +} + +///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol + +pragma solidity 0.4.18; + + +library ScriptHelpers { + // To test with JS and compare with actual encoder. Maintaining for reference. + // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } + // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } + // This is truly not beautiful but lets no daydream to the day solidity gets reflection features + + function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { + return encode(_a, _b, _c); + } + + function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { + // A is positioned after the 3 position words + uint256 aPosition = 0x60; + uint256 bPosition = aPosition + 32 * abiLength(_a); + uint256 cPosition = bPosition + 32 * abiLength(_b); + uint256 length = cPosition + 32 * abiLength(_c); + + d = new bytes(length); + assembly { + // Store positions + mstore(add(d, 0x20), aPosition) + mstore(add(d, 0x40), bPosition) + mstore(add(d, 0x60), cPosition) + } + + // Copy memory to correct position + copy(d, getPtr(_a), aPosition, _a.length); + copy(d, getPtr(_b), bPosition, _b.length); + copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address + } + + function abiLength(bytes memory _a) internal pure returns (uint256) { + // 1 for length + + // memory words + 1 if not divisible for 32 to offset word + return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); + } + + function abiLength(address[] _a) internal pure returns (uint256) { + // 1 for length + 1 per item + return 1 + _a.length; + } + + function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { + uint dest; + assembly { + dest := add(add(_d, 0x20), _pos) + } + memcpy(dest, _src, _length + 32); + } + + function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { + assembly { + ptr := _x + } + } + + function getSpecId(bytes _script) internal pure returns (uint32) { + return uint32At(_script, 0); + } + + function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := mload(add(_data, add(0x20, _location))) + } + } + + function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), + 0x1000000000000000000000000) + } + } + + function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { + uint256 word = uint256At(_data, _location); + + assembly { + result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), + 0x100000000000000000000000000000000000000000000000000000000) + } + } + + function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { + assembly { + result := add(_data, add(0x20, _location)) + } + } + + function toBytes(bytes4 _sig) internal pure returns (bytes) { + bytes memory payload = new bytes(4); + payload[0] = bytes1(_sig); + payload[1] = bytes1(_sig << 8); + payload[2] = bytes1(_sig << 16); + payload[3] = bytes1(_sig << 24); + return payload; + } + + function memcpy(uint _dest, uint _src, uint _len) public pure { + uint256 src = _src; + uint256 dest = _dest; + uint256 len = _len; + + // Copy word-length chunks while possible + for (; len >= 32; len -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = 256 ** (32 - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } +} + +///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol + +pragma solidity ^0.4.18; + + + + + + + + +contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { + using ScriptHelpers for bytes; + + function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { + // TODO: Too much data flying around, maybe extracting spec id here is cheaper + address executorAddr = getExecutor(_script); + require(executorAddr != address(0)); + + bytes memory calldataArgs = _script.encode(_input, _blacklist); + bytes4 sig = IEVMScriptExecutor(0).execScript.selector; + + require(executorAddr.delegatecall(sig, calldataArgs)); + + return returnedDataDecoded(); + } + + function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { + return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); + } + + // TODO: Internal + function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { + address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); + return IEVMScriptRegistry(registryAddr); + } + + /** + * @dev copies and returns last's call data. Needs to ABI decode first + */ + function returnedDataDecoded() internal view returns (bytes ret) { + assembly { + let size := returndatasize + switch size + case 0 {} + default { + ret := mload(0x40) // free mem ptr get + mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set + returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data + } + } + return ret; + } + + modifier protectState { + address preKernel = kernel; + bytes32 preAppId = appId; + _; // exec + require(kernel == preKernel); + require(appId == preAppId); + } +} + +///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol + +pragma solidity 0.4.18; + + +contract ACLSyntaxSugar { + function arr() internal pure returns (uint256[] r) {} + + function arr(bytes32 _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a) internal pure returns (uint256[] r) { + return arr(uint256(_a)); + } + + function arr(address _a, address _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), _b, _c); + } + + function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b)); + } + + function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), _c, _d, _e); + } + + function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { + return arr(uint256(_a), uint256(_b), uint256(_c)); + } + + function arr(uint256 _a) internal pure returns (uint256[] r) { + r = new uint256[](1); + r[0] = _a; + } + + function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { + r = new uint256[](2); + r[0] = _a; + r[1] = _b; + } + + function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { + r = new uint256[](3); + r[0] = _a; + r[1] = _b; + r[2] = _c; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { + r = new uint256[](4); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + } + + function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { + r = new uint256[](5); + r[0] = _a; + r[1] = _b; + r[2] = _c; + r[3] = _d; + r[4] = _e; + } +} + + +contract ACLHelpers { + function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 30)); + } + + function decodeParamId(uint256 _x) internal pure returns (uint8 b) { + return uint8(_x >> (8 * 31)); + } + + function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { + a = uint32(_x); + b = uint32(_x >> (8 * 4)); + c = uint32(_x >> (8 * 8)); + } +} + + +///File: @aragon/os/contracts/apps/AragonApp.sol + +pragma solidity ^0.4.18; + + + + + + + +contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { + modifier auth(bytes32 _role) { + require(canPerform(msg.sender, _role, new uint256[](0))); + _; + } + + modifier authP(bytes32 _role, uint256[] params) { + require(canPerform(msg.sender, _role, params)); + _; + } + + function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { + bytes memory how; // no need to init memory as it is never used + if (params.length > 0) { + uint256 byteLength = params.length * 32; + assembly { + how := params // forced casting + mstore(how, byteLength) + } + } + return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); + } +} + + +///File: ./contracts/LiquidPledgingACLHelpers.sol + +pragma solidity ^0.4.18; + +contract LiquidPledgingACLHelpers { + function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { + r = new uint[](4); + r[0] = uint(a); + r[1] = uint(b); + r[2] = uint(c); + r[3] = d; + r[4] = uint(e); + } + + function arr(bool a) internal pure returns (uint[] r) { + r = new uint[](1); + uint _a; + assembly { + _a := a // forced casting + } + r[0] = _a; + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) public + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() public constant returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) public view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public constant returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() public view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) public view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: giveth-common-contracts/contracts/ERC20.sol + +pragma solidity ^0.4.15; + + +/** + * @title ERC20 + * @dev A standard interface for tokens. + * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md + */ +contract ERC20 { + + /// @dev Returns the total token supply + function totalSupply() public constant returns (uint256 supply); + + /// @dev Returns the account balance of the account with address _owner + function balanceOf(address _owner) public constant returns (uint256 balance); + + /// @dev Transfers _value number of tokens to address _to + function transfer(address _to, uint256 _value) public returns (bool success); + + /// @dev Transfers _value number of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); + + /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount + function approve(address _spender, uint256 _value) public returns (bool success); + + /// @dev Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) public constant returns (uint256 remaining); + + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); + +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) constant public returns (bool) { + return !escapeBlacklist[_token]; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + // Event Declarations + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function checkAdminOwner(uint64 idAdmin) internal constant { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + } else { + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + } + } else { + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + } + + } else { + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + return; + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + } + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} + + +///File: ./contracts/LiquidPledging.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +/// @dev `LiquidPledging` allows for liquid pledging through the use of +/// internal id structures and delegate chaining. All basic operations for +/// handling liquid pledging are supplied as well as plugin features +/// to allow for expanded functionality. +contract LiquidPledging is LiquidPledgingBase { + + + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public + { + addGiverAndDonate(idReceiver, msg.sender, token, amount); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver, token, amount); + } + + /// @notice This is how value enters the system and how pledges are created; + /// the ether is sent to the vault, an pledge for the Giver is created (or + /// found), the amount of ETH donated in wei is added to the `amount` in + /// the Giver's Pledge, and an LP transfer is done to the idReceiver for + /// the full amount + /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idReceiver The Admin receiving the donation; can be any Admin: + /// the Giver themselves, another Giver, a Delegate or a Project + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public + { + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + + PledgeAdmin storage sender = _findAdmin(idGiver); + require(sender.adminType == PledgeAdminType.Giver); + + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` + + uint64 idPledge = _findOrCreatePledge( + idGiver, + new uint64[](0), // Creates empty array for delegationChain + 0, + 0, + 0, + token, + PledgeState.Pledged + ); + + Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; + + Transfer(0, idPledge, amount); + + _transfer(idGiver, idPledge, amount, idReceiver); + } + + /// @notice Transfers amounts between pledges for internal accounting + /// @param idSender Id of the Admin that is transferring the amount from + /// Pledge to Pledge; this admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of ETH (in wei) that this pledge is transferring + /// the authority to withdraw from the vault + /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending + /// to a Giver, a Delegate or a Project; a Delegate sending to another + /// Delegate, or a Delegate pre-commiting it to a Project + function transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) public + { + checkAdminOwner(idSender); + _transfer(idSender, idPledge, amount, idReceiver); + } + + /// @notice Authorizes a payment be made from the `vault` can be used by the + /// Giver to veto a pre-committed donation from a Delegate to an + /// intendedProject + /// @param idPledge Id of the pledge that is to be redeemed into ether + /// @param amount Quantity of ether (in wei) to be authorized + function withdraw(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); // Updates pledge info + + Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + checkAdminOwner(p.owner); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paying + ); + + _doTransfer(idPledge, idNewPledge, amount); + + PledgeAdmin storage owner = _findAdmin(p.owner); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); + } + + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// from Paying to Paid + /// @param idPledge Id of the pledge that is to be withdrawn + /// @param amount Quantity of ether (in wei) to be withdrawn + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paid + ); + + _doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// from Paying back to Pledged + /// @param idPledge Id of the pledge that's withdraw is to be canceled + /// @param amount Quantity of ether (in wei) to be canceled + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + // When a payment is canceled, never is assigned to a project. + uint64 idOldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + + idOldPledge = normalizePledge(idOldPledge); + + _doTransfer(idPledge, idOldPledge, amount); + } + + /// @notice Changes the `project.canceled` flag to `true`; cannot be undone + /// @param idProject Id of the project that is to be canceled + function cancelProject(uint64 idProject) public { + PledgeAdmin storage project = _findAdmin(idProject); + checkAdminOwner(idProject); + project.canceled = true; + + CancelProject(idProject); + } + + /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that + /// that sent it there in the first place, a Ctrl-z + /// @param idPledge Id of the pledge that is to be canceled + /// @param amount Quantity of ether (in wei) to be transfered to the + /// `oldPledge` + function cancelPledge(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + require(p.oldPledge != 0); + checkAdminOwner(p.owner); + + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // @dev This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + + + /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods + uint constant D64 = 0x10000000000000000; + + /// @notice Transfers multiple amounts within multiple Pledges in an + /// efficient single call + /// @param idSender Id of the Admin that is transferring the amounts from + /// all the Pledges; this admin must have permissions to move the value + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or + /// Project sending to a Giver, a Delegate or a Project; a Delegate sending + /// to another Delegate, or a Delegate pre-commiting it to a Project + function mTransfer( + uint64 idSender, + uint[] pledgesAmounts, + uint64 idReceiver + ) public + { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + /// @notice Authorizes multiple amounts within multiple Pledges to be + /// withdrawn from the `vault` in an efficient single call + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + function mWithdraw(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mConfirmPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + /// @notice `mCancelPayment` allows for multiple pledges to be canceled + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mCancelPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + /// @notice `mNormalizePledge` allows for multiple pledges to be + /// normalized efficiently + /// @param pledges An array of pledge IDs + function mNormalizePledge(uint64[] pledges) public { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge( pledges[i] ); + } + } +} + + +///File: ./contracts/test/TestSimpleProjectPlugin.sol + +pragma solidity ^0.4.11; + + + +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleProjectPlugin { + + uint64 public idProject; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleProjectPlugin() { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + initPending = true; + } + + function init( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + require(initPending); + idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} diff --git a/build/contracts.js b/build/contracts.js new file mode 100644 index 0000000..28fdeec --- /dev/null +++ b/build/contracts.js @@ -0,0 +1,20 @@ +const fs = require("fs"); +const generateClass = require('eth-contract-class').default; + +const contracts = {}; +fs.readdirSync(__dirname).forEach(file => { + if ( /^.*\.sol\.js$/.test(file)) { + const f = require("./" + file); + Object.keys(f).forEach((k) => { + const res = /^(.*)Abi$/.exec(k); + if (res) { + const contractName = res[1]; + if (f[contractName+"ByteCode"].length > 2) { + contracts[contractName] = generateClass(f[contractName+"Abi"], f[contractName+"ByteCode"]); + } + } + }); + } +}); + +module.exports = contracts; diff --git a/build/solcStandardInput.json b/build/solcStandardInput.json new file mode 100644 index 0000000..d948437 --- /dev/null +++ b/build/solcStandardInput.json @@ -0,0 +1,26 @@ +{ + "language": "Solidity", + "sources": {}, + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "useLiteralContent": true + }, + "outputSelection": { + "*": { + "*": [ + "metadata", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "abi", + "evm.methodIdentifiers", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + } + } +} \ No newline at end of file diff --git a/build/solcStandardOutput.json b/build/solcStandardOutput.json new file mode 100644 index 0000000..b548310 --- /dev/null +++ b/build/solcStandardOutput.json @@ -0,0 +1,14127 @@ +{ + "contracts": { + "./contracts/EscapableApp.sol": { + "EscapableApp": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "isTokenEscapable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "escapeHatch", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ESCAPE_HATCH_CALLER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "escapeHatchDestination", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + } + ], + "name": "EscapeHatchBlackistedToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "EscapeHatchCalled", + "type": "event" + } + ], + "devdoc": { + "methods": { + "escapeHatch(address)": { + "params": { + "_token": "to transfer, use 0x0 for ether" + } + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "initialize(address)": { + "params": { + "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 " + } + }, + "isTokenEscapable(address)": { + "params": { + "_token": "the token address being queried" + }, + "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029", + "sourceMap": "1201:2687:0:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029", + "sourceMap": "1201:2687:0:-;;;;;;;;;-1:-1:-1;;;1201:2687:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;;;;;;;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1330:88:0;;;;;;;;;;;;2001:207;;;;;;;;;;-1:-1:-1;;;;;2001:207:0;;;;;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;492:1:24;2416:624:0;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;2001:207::-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:18;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;767:94:27:-;842:12;767:94;:::o;1201:2687:0:-;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "513000", + "executionCost": "544", + "totalCost": "513544" + }, + "external": { + "ESCAPE_HATCH_CALLER_ROLE()": "462", + "EVMSCRIPT_REGISTRY_APP()": "573", + "EVMSCRIPT_REGISTRY_APP_ID()": "308", + "appId()": "458", + "canPerform(address,bytes32,uint256[])": "infinite", + "escapeHatch(address)": "infinite", + "escapeHatchDestination()": "809", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "502", + "initialize(address)": "41353", + "isTokenEscapable(address)": "717", + "kernel()": "787" + }, + "internal": { + "_blacklistEscapeToken(address)": "infinite" + } + }, + "methodIdentifiers": { + "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "escapeHatch(address)": "a142d608", + "escapeHatchDestination()": "f5b61230", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "initialize(address)": "c4d66de8", + "isTokenEscapable(address)": "892db057", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": { + "escapeHatch(address)": { + "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" + }, + "isTokenEscapable(address)": { + "notice": "Checks to see if `_token` is in the blacklist of tokens" + } + } + } + } + }, + "./contracts/ILiquidPledgingPlugin.sol": { + "ILiquidPledgingPlugin": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "pledgeManager", + "type": "uint64" + }, + { + "name": "pledgeFrom", + "type": "uint64" + }, + { + "name": "pledgeTo", + "type": "uint64" + }, + { + "name": "context", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "afterTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgeManager", + "type": "uint64" + }, + { + "name": "pledgeFrom", + "type": "uint64" + }, + { + "name": "pledgeTo", + "type": "uint64" + }, + { + "name": "context", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "beforeTransfer", + "outputs": [ + { + "name": "maxAllowed", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": { + "afterTransfer(uint64,uint64,uint64,uint64,address,uint256)": { + "params": { + "amount": "The amount of value that will be transfered.", + "context": "The situation that is triggering the plugin: 0 -> Plugin for the owner transferring pledge to another party 1 -> Plugin for the first delegate transferring pledge to another party 2 -> Plugin for the second delegate transferring pledge to another party ... 255 -> Plugin for the intendedProject transferring pledge to another party /// 256 -> Plugin for the owner receiving pledge to another party 257 -> Plugin for the first delegate receiving pledge to another party 258 -> Plugin for the second delegate receiving pledge to another party ... 511 -> Plugin for the intendedProject receiving pledge to another party", + "pledgeFrom": "This is the Id from which value will be transfered.", + "pledgeManager": "The admin or current manager of the pledge", + "pledgeTo": "This is the Id that value will be transfered to. " + } + }, + "beforeTransfer(uint64,uint64,uint64,uint64,address,uint256)": { + "params": { + "amount": "The amount of value that will be transfered.", + "context": "The situation that is triggering the plugin: 0 -> Plugin for the owner transferring pledge to another party 1 -> Plugin for the first delegate transferring pledge to another party 2 -> Plugin for the second delegate transferring pledge to another party ... 255 -> Plugin for the intendedProject transferring pledge to another party /// 256 -> Plugin for the owner receiving pledge to another party 257 -> Plugin for the first delegate receiving pledge to another party 258 -> Plugin for the second delegate receiving pledge to another party ... 511 -> Plugin for the intendedProject receiving pledge to another party", + "pledgeFrom": "This is the Id from which value will be transfered.", + "pledgeManager": "The admin or current manager of the pledge", + "pledgeTo": "This is the Id that value will be transfered to. " + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "afterTransfer(uint64,uint64,uint64,uint64,address,uint256)": "0da5e18c", + "beforeTransfer(uint64,uint64,uint64,uint64,address,uint256)": "31c51a00" + } + }, + "userdoc": { + "methods": { + "afterTransfer(uint64,uint64,uint64,uint64,address,uint256)": { + "notice": "Plugins are used (much like web hooks) to initiate an action upon any donation, delegation, or transfer; this is an optional feature and allows for extreme customization of the contract. This function implements any action that should be initiated after a transfer." + }, + "beforeTransfer(uint64,uint64,uint64,uint64,address,uint256)": { + "notice": "Plugins are used (much like web hooks) to initiate an action upon any donation, delegation, or transfer; this is an optional feature and allows for extreme customization of the contract. This function implements any action that should be initiated before a transfer." + } + } + } + } + }, + "./contracts/LPConstants.sol": { + "LPConstants": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "LP_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "VAULT_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029", + "sourceMap": "83:175:2:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029", + "sourceMap": "83:175:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;192:63:2;;;;;;;;;;;;57:58:42;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:42;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "200400", + "executionCost": "240", + "totalCost": "200640" + }, + "external": { + "ACL_APP()": "532", + "ACL_APP_ID()": "377", + "APP_ADDR_NAMESPACE()": "267", + "APP_BASES_NAMESPACE()": "421", + "CORE_NAMESPACE()": "333", + "KERNEL_APP()": "466", + "KERNEL_APP_ID()": "245", + "LP_APP_ID()": "311", + "VAULT_APP_ID()": "399" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "LP_APP_ID()": "30744267", + "VAULT_APP_ID()": "d2dd420f" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/LPFactory.sol": { + "LPFactory": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "baseACL", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lpBase", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_root", + "type": "address" + } + ], + "name": "newDAO", + "outputs": [ + { + "name": "dao", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "LP_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "regFactory", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "baseKernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_root", + "type": "address" + }, + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "newLP", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "VAULT_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultBase", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_vaultBase", + "type": "address" + }, + { + "name": "_lpBase", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "vault", + "type": "address" + } + ], + "name": "DeployVault", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "liquidPledging", + "type": "address" + } + ], + "name": "DeployLiquidPledging", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "dao", + "type": "address" + } + ], + "name": "DeployDAO", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "reg", + "type": "address" + } + ], + "name": "DeployEVMScriptRegistry", + "type": "event" + } + ], + "devdoc": { + "methods": { + "newDAO(address)": { + "params": { + "_root": "Address that will be granted control to setup DAO permissions" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "606060405234156200001057600080fd5b604051604080620053f283398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001e3183390190565b6040516115e58062003e0d83390190565b611ccd80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd000296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", + "sourceMap": "164:2492:3:-;;;369:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;443:1:3;;-1:-1:-1;521:12:37;;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:37;-1:-1:-1;;;;;500:34:37;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:37;-1:-1:-1;;;;;544:28:37;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:37;-1:-1:-1;;;;;628:50:37;;;;;583:106;-1:-1:-1;;;;;;464:15:3;;;;456:24;;;;;;-1:-1:-1;;;;;498:12:3;;;;490:21;;;;;;521:9;:22;;-1:-1:-1;;;;;521:22:3;;;-1:-1:-1;;;;;;521:22:3;;;;;;;553:6;:16;;;;;;;;;;;164:2492;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd00029", + "sourceMap": "164:2492:3:-;;;;;;;;;-1:-1:-1;;;164:2492:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22:37;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:37;;;;;;;;;;;;;;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;246:21:3;;;;;;;;;;;;797:1010:37;;;;;;;;;;-1:-1:-1;;;;;797:1010:37;;;;;336:77:42;;;;;;;;;;;;192:63:2;;;;;;;;;;;;247:42:37;;;;;;;;;;;;57:58:42;;;;;;;;;;;;492:75;;;;;;;;;;;;188:25:37;;;;;;;;;;;;582:753:3;;;;;;;;;;-1:-1:-1;;;;;582:753:3;;;;;;;;;;;;420:66:42;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:42;;;;;;;;;;;;216:24:3;;;;;;;;;;;;219:22:37;;;-1:-1:-1;;;;;219:22:37;;:::o;258:72:42:-;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;246:21:3:-;;;-1:-1:-1;;;;;246:21:3;;:::o;797:1010:37:-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:37;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:37;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:37;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:37;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:37;;;;;;-1:-1:-1;;;;;998:36:37;;;;;;;;;;;;;;;-1:-1:-1;998:36:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:37;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:37;1084:33;;-1:-1:-1;1080:696:37;;1152:3;-1:-1:-1;;;;;1152:27:37;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:37;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:37;;;;-1:-1:-1;1257:19:37;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:37;;;;;;-1:-1:-1;;;;;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:37;;-1:-1:-1;;;;;1318:20:37;;;;-1:-1:-1;1318:20:37;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:37;;;;;;-1:-1:-1;;;;;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:37;;-1:-1:-1;;;;;1416:10:37;;-1:-1:-1;1416:31:37;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:37;;;;;;-1:-1:-1;;;;;1416:43:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:37;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:37;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:37;;;;;;-1:-1:-1;;;;;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:37;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:37;;;;;;-1:-1:-1;;;;;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:37;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:37;;;;;;-1:-1:-1;;;;;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:37;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:37;;;;;;-1:-1:-1;;;;;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:37;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;336:77:42:-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;247:42:37:-;;;-1:-1:-1;;;;;247:42:37;;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;188:25:37:-;;;-1:-1:-1;;;;;188:25:37;;:::o;582:753:3:-;662:13;700:7;738:22;875:9;952:17;678:12;685:4;678:6;:12::i;:::-;662:28;;714:6;-1:-1:-1;;;;;714:10:3;;:12;;;;;;;;;;;-1:-1:-1;;;714:12:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;763:23:3;;;:25;;;;;;;;;;;-1:-1:-1;;;763:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;799:20:3;;;820:4;834:6;763:25;820:4;799:65;;-1:-1:-1;;;799:65:3;;;;;;-1:-1:-1;;;;;799:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;799:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;895:6;-1:-1:-1;;;;;895:21:3;;168:18:2;;;;;;;;;;;;;;;931:9:3;;-1:-1:-1;;;;;931:9:3;;895:46;;;;;;;-1:-1:-1;;;895:46:3;;;;;;;;;;;;;-1:-1:-1;;;;;895:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;987:21:3;;;228:27:2;;;;;;;;;;;;;;;1020:6:3;;-1:-1:-1;;;;;1020:6:3;;987:40;;;;;;;-1:-1:-1;;;987:40:3;;;;;;;;;;;;;-1:-1:-1;;;;;987:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1038:12:3;;;987:40;1064:23;1038:50;;-1:-1:-1;;;1038:50:3;;;;;;-1:-1:-1;;;;;1038:50:3;;;;;;;;;;;;;;;-1:-1:-1;1038:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1098:2;-1:-1:-1;;;;;1098:13:3;;1120:1;1124:23;1098:50;;-1:-1:-1;;;1098:50:3;;;;;;-1:-1:-1;;;;;1098:50:3;;;;;;;;;;;;;;;-1:-1:-1;1098:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1209:13:3;;;;1223:25;:27;;;;;;;;;;;-1:-1:-1;;;1223:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228::2;;;;;;;;;;;;;;1271:2:3;1209:66;;;;;;;;-1:-1:-1;;;1209:66:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1209:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1286:42;1302:5;1309:3;1314:6;1322:1;1325:2;1286:15;:42::i;:::-;582:753;;;;;;;:::o;420:66:42:-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o;216:24:3:-;;;-1:-1:-1;;;;;216:24:3;;:::o;1341:1313::-;1454:22;1514:16;1572:23;1636;1698:25;1479:6;-1:-1:-1;;;;;1479:23:3;;:25;;;;;;;;;;;-1:-1:-1;;;1479:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1533:27:3;;;:29;;;;;;;;;;;-1:-1:-1;;;1533:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1598:26:3;;;:28;;;;;;;;;;;-1:-1:-1;;;1598:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1662:24:3;;;:26;;;;;;;;;;;-1:-1:-1;;;1662:26:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1726:22:3;;;:24;;;;;;;;;;;-1:-1:-1;;;1726:24:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1761:20:3;;;1782:5;1797:1;1801:15;1782:5;1761:63;;-1:-1:-1;;;1761:63:3;;;;;;-1:-1:-1;;;;;1761:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1761:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1834:3;-1:-1:-1;;;;;1834:20:3;;1855:5;1870:2;1875:15;1892:5;1834:64;;-1:-1:-1;;;1834:64:3;;;;;;-1:-1:-1;;;;;1834:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1834:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1908:3;-1:-1:-1;;;;;1908:20:3;;1929:5;1944:2;1949:17;1968:5;1908:66;;-1:-1:-1;;;1908:66:3;;;;;;-1:-1:-1;;;;;1908:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1908:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:3;-1:-1:-1;;;;;1984:20:3;;2013:2;2026:1;2030:15;2047:5;1984:69;;-1:-1:-1;;;1984:69:3;;;;;;-1:-1:-1;;;;;1984:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1984:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2182:3;-1:-1:-1;;;;;2182:19:3;;2202:5;2217:6;2226:14;2182:59;;-1:-1:-1;;;2182:59:3;;;;;;-1:-1:-1;;;;;2182:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2182:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2251:3;-1:-1:-1;;;;;2251:19:3;;2271:5;2286:3;2292:8;2251:50;;-1:-1:-1;;;2251:50:3;;;;;;-1:-1:-1;;;;;2251:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2251:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2311:3;-1:-1:-1;;;;;2311:20:3;;2332:4;2346:6;2355:14;2311:59;;-1:-1:-1;;;2311:59:3;;;;;;-1:-1:-1;;;;;2311:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2311:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:3;-1:-1:-1;;;;;2380:20:3;;2401:4;2415:3;2421:8;2380:50;;-1:-1:-1;;;2380:50:3;;;;;;-1:-1:-1;;;;;2380:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2380:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2441:3;-1:-1:-1;;;;;2441:24:3;;2466:5;2481:6;2490:14;2441:64;;-1:-1:-1;;;2441:64:3;;;;;;-1:-1:-1;;;;;2441:64:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2441:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2515:3;-1:-1:-1;;;;;2515:24:3;;2540:5;2555:3;2561:8;2515:55;;-1:-1:-1;;;2515:55:3;;;;;;-1:-1:-1;;;;;2515:55:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2515:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2581:23;2601:1;2581:23;;-1:-1:-1;;;;;2581:23:3;;;;;;;;;;;;;;2614:33;2643:2;2614:33;;-1:-1:-1;;;;;2614:33:3;;;;;;;;;;;;;;1341:1313;;;;;;;;;;:::o;164:2492::-;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "1474600", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "ACL_APP()": "683", + "ACL_APP_ID()": "572", + "APP_ADDR_NAMESPACE()": "352", + "APP_BASES_NAMESPACE()": "616", + "CORE_NAMESPACE()": "484", + "KERNEL_APP()": "595", + "KERNEL_APP_ID()": "330", + "LP_APP_ID()": "440", + "VAULT_APP_ID()": "594", + "baseACL()": "589", + "baseKernel()": "809", + "lpBase()": "655", + "newDAO(address)": "infinite", + "newLP(address,address)": "infinite", + "regFactory()": "743", + "vaultBase()": "919" + }, + "internal": { + "_setPermissions(address,contract ACL,contract Kernel,contract LPVault,contract LiquidPledging)": "infinite" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "LP_APP_ID()": "30744267", + "VAULT_APP_ID()": "d2dd420f", + "baseACL()": "086b339e", + "baseKernel()": "b16dd130", + "lpBase()": "1cb671b1", + "newDAO(address)": "21687444", + "newLP(address,address)": "bce9b995", + "regFactory()": "656362b5", + "vaultBase()": "eeab4955" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/LPVault.sol": { + "ILiquidPledging": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "confirmPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "cancelPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "cancelPayment(uint64,uint256)": "e9c211e2", + "confirmPayment(uint64,uint256)": "2ee88808" + } + }, + "userdoc": { + "methods": {} + } + }, + "LPVault": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "escapeFunds", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "nPayments", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_liquidPledging", + "type": "address" + }, + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CANCEL_PAYMENT_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SET_AUTOPAY_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "liquidPledging", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_idPayment", + "type": "uint256" + } + ], + "name": "cancelPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CONFIRM_PAYMENT_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_idPayment", + "type": "uint256" + } + ], + "name": "confirmPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "payments", + "outputs": [ + { + "name": "ref", + "type": "bytes32" + }, + { + "name": "dest", + "type": "address" + }, + { + "name": "state", + "type": "uint8" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "isTokenEscapable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "escapeHatch", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_automatic", + "type": "bool" + } + ], + "name": "setAutopay", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_ref", + "type": "bytes32" + }, + { + "name": "_dest", + "type": "address" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "authorizePayment", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "AUTHORIZE_PAYMENT_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ESCAPE_HATCH_CALLER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_idPayments", + "type": "uint256[]" + } + ], + "name": "multiCancel", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "autoPay", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "escapeHatchDestination", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_idPayments", + "type": "uint256[]" + } + ], + "name": "multiConfirm", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "autoPay", + "type": "bool" + } + ], + "name": "AutoPaySet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "EscapeFundsCalled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idPayment", + "type": "uint256" + }, + { + "indexed": true, + "name": "ref", + "type": "bytes32" + } + ], + "name": "ConfirmPayment", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idPayment", + "type": "uint256" + }, + { + "indexed": true, + "name": "ref", + "type": "bytes32" + } + ], + "name": "CancelPayment", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idPayment", + "type": "uint256" + }, + { + "indexed": true, + "name": "ref", + "type": "bytes32" + }, + { + "indexed": true, + "name": "dest", + "type": "address" + }, + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AuthorizePayment", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + } + ], + "name": "EscapeHatchBlackistedToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "EscapeHatchCalled", + "type": "event" + } + ], + "devdoc": { + "methods": { + "authorizePayment(bytes32,address,address,uint256)": { + "params": { + "_amount": "The amount that the payment is being authorized for", + "_dest": "The address that payments will be sent to", + "_ref": "References the payment will normally be the pledgeID" + }, + "return": "idPayment The id of the payment (needed by the owner to confirm)" + }, + "cancelPayment(uint256)": { + "params": { + "_idPayment": "Array lookup for the payment." + } + }, + "confirmPayment(uint256)": { + "params": { + "_idPayment": "Array lookup for the payment." + } + }, + "escapeFunds(address,uint256)": { + "params": { + "_amount": "to transfer", + "_token": "to transfer" + } + }, + "escapeHatch(address)": { + "params": { + "_token": "to transfer, use 0x0 for ether" + } + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "initialize(address,address)": { + "params": { + "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 ", + "_liquidPledging": "" + } + }, + "isTokenEscapable(address)": { + "params": { + "_token": "the token address being queried" + }, + "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" + }, + "multiCancel(uint256[])": { + "params": { + "_idPayments": "An array of multiple payment ids" + } + }, + "multiConfirm(uint256[])": { + "params": { + "_idPayments": "An array of multiple payment ids" + } + }, + "nPayments()": { + "return": "The total number of payments that have ever been authorized" + }, + "setAutopay(bool)": { + "params": { + "_automatic": "If true, payments will confirm instantly, if false the training wheels are put on and the owner must manually approve every payment" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6118218061001e6000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029", + "sourceMap": "1808:7827:4:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029", + "sourceMap": "1808:7827:4:-;;;;;;;;;-1:-1:-1;;;1808:7827:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7806:372;;;;;;;;;;-1:-1:-1;;;;;7806:372:4;;;;;;;;;8260:87;;;;;;;;;;;;;;;;;;;;;;;;;;;4259:255;;;;;;;;;;-1:-1:-1;;;;;4259:255:4;;;;;;;;;;1960:78;;;;;;;;;;;;2134:72;;;;;;;;;;;;68:84:31;;;;;;;;;;;;3516:37:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;3516:37:4;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;6834:92:4;;;;;;;;;;;;;;1874:80;;;;;;;;;;;;6522:94;;;;;;;;;;;;;;3485:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3485:25:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3485:25:4;-1:-1:-1;;;;;3485:25:4;;;;;;;;;;;;;;;;;;;;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;;;;;;;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;4847:153:4;;;;;;;;;;;;;;;;5531:681;;;;;;;;;;;;-1:-1:-1;;;;;5531:681:4;;;;;;;;;;;;2044:84;;;;;;;;;;;;1330:88:0;;;;;;;;;;;;7376:169:4;;;;;;;;;;;;;;;;;;;;;3336:19;;;;;;;;;;;;3795:162;;;;;;;;;;-1:-1:-1;;;;;3795:162:4;;;;;86:21:23;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;7066:171:4;;;;;;;;;;;;;;;;;;;;;7806:372;7951:11;7988:12;1381:37:0;;;;;;;;;;;;;;7896:11:4;7900:6;7896:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;7927:13:4;;;;7919:22;;;;;;7971:6;7951:27;;8003:5;-1:-1:-1;;;;;8003:15:4;;8019:4;8003:21;;;;;;;;-1:-1:-1;;;8003:21:4;;;;;;-1:-1:-1;;;;;8003:21:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8042:18:4;;;;8034:27;;;;;;8094:22;;-1:-1:-1;;;;;8079:14:4;;;;;;8094:22;8118:7;8094:22;8079:47;;;;;;;-1:-1:-1;;;8079:47:4;;;;;;-1:-1:-1;;;;;8079:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8071:56;;;;;;;;8137:34;8155:6;8163:7;8137:34;;-1:-1:-1;;;;;8137:34:4;;;;;;;;;;;;;;;;;;;;7806:372;;;;;;:::o;8260:87::-;8325:8;:15;8260:87;;:::o;4259:255::-;140:19:27;;:24;132:33;;;;;;4365:41:4;4382:23;4365:16;:41::i;:::-;-1:-1:-1;;;;;4425:22:4;;;;4417:31;;;;;;-1:-1:-1;4458:14:4;:49;;-1:-1:-1;;4458:49:4;-1:-1:-1;;;;;4458:49:4;;;;;;;;;;4259:255::o;1960:78::-;2006:32;;;;;;;;;;;;;;1960:78;:::o;2134:72::-;2177:29;;;;;;;;;;;;;;2134:72;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;3516:37:4:-;;;-1:-1:-1;;;;;3516:37:4;;:::o;113:20:23:-;;;;:::o;6834:92:4:-;6891:28;6908:10;6891:16;:28::i;:::-;6834:92;:::o;1874:80::-;1921:33;;;;;;;;;;;;;;1874:80;:::o;6522:94::-;6580:29;6598:10;6580:17;:29::i;3485:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3485:25:4;;;;-1:-1:-1;;;3485:25:4;;;;;;;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;492:1:24;2416:624:0;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;4847:153:4:-;2177:29;;;;;;;;;;;;;;4917:15;4921:10;4917:3;:15::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;4944:7:4;:20;;-1:-1:-1;;4944:20:4;;;;;;;;;4974:19;;4944:20;4985:7;4974:19;;;;;;;;;;;;;;;;4847:153;;;:::o;5531:681::-;5723:4;5743:14;2093:35;;;;;;;;;;;;;;5693:19;5697:5;5704:7;5693:3;:19::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;5760:8:4;:15;;;-1:-1:-1;5760:15:4;;5785:18;;;;;;:::i;:::-;;5841:21;5813:8;5822:9;5813:19;;;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:49;;-1:-1:-1;;5813:49:4;-1:-1:-1;;;5813:49:4;;;;;;;;;;;;;;5898:4;5872:8;5881:9;5872:19;;;;;;;;;;;;;;;;;;;;;;;:30;5912:8;:19;;5939:5;;5912:8;5921:9;;5912:19;;;;;;;;;;;;;;;;:24;;;:32;;;;;-1:-1:-1;;;;;5912:32:4;;;;;-1:-1:-1;;;;;5912:32:4;;;;;;5982:6;5954:8;5963:9;5954:19;;;;;;;;;;;;;;;;;;;;:25;;;:34;;;;;-1:-1:-1;;;;;5954:34:4;;;;;-1:-1:-1;;;;;5954:34:4;;;;;;6027:7;5998:8;6007:9;5998:19;;;;;;;;;;;;;;;;;;:26;:19;;;;;:26;:36;-1:-1:-1;;;;;6045:57:4;;6073:4;6062:9;6045:57;6086:6;6094:7;6045:57;;-1:-1:-1;;;;;6045:57:4;;;;;;;;;;;;;;;;;;;;6117:7;;;;6113:66;;;6140:28;6158:9;6140:17;:28::i;:::-;-1:-1:-1;6196:9:4;;5531:681;-1:-1:-1;;;;;;5531:681:4:o;2044:84::-;2093:35;;;;;;;;;;;;;;2044:84;:::o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;7376:169:4:-;7441:6;7436:103;7453:22;;;7436:103;;;7496:32;7513:11;;7525:1;7513:14;;;;;;;;;;;;;7496:16;:32::i;:::-;7477:3;;7436:103;;;7376:169;;;:::o;3336:19::-;;;;;;:::o;3795:162::-;140:19:27;;:24;132:33;;;;;86:21:23;;;-1:-1:-1;;;;;86:21:23;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;7066:171:4:-;7132:6;7127:104;7144:22;;;7127:104;;;7187:33;7205:11;;7217:1;7205:14;;;;;;;;;;;;;7187:17;:33::i;:::-;7168:3;;7127:104;;354:101:18;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;2001:207:0:-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;9232:401:4:-;9385:17;2006:32;;;;;;;;;;;;;;9311:15;9315:10;9311:3;:15::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;9359:8:4;:15;9346:28;;9338:37;;;;;;9405:8;:20;;9414:10;;9405:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;9443:7:4;;;;-1:-1:-1;;;9443:7:4;;;;:32;;;;;;;;;9435:41;;;;;;9487:7;;;:32;;-1:-1:-1;;9487:32:4;;;;;9530:14;;9566:5;;9574:8;;;;-1:-1:-1;;;;;9530:14:4;;;;:28;;9566:5;9530:53;;-1:-1:-1;;;9530:53:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9530:53:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9620:5:4;;;-1:-1:-1;9608:10:4;9594:32;;;;;;;;;;9232:401;;;;:::o;8546:562::-;8630:8;:15;8656:17;;;;8617:28;;8609:37;;;;;;8676:8;:20;;8685:10;;8676:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;8714:7:4;;;;-1:-1:-1;;;8714:7:4;;;;:32;;;;;;;;;8706:41;;;;;;8765:71;8776:10;1921:33;;;;;;;;;;;;;;8810:25;8814:10;8826:1;:8;;;8810:3;:25::i;:::-;8765:10;:71::i;:::-;8757:80;;;;;;;;8858:18;8848:7;;:28;;-1:-1:-1;;8848:28:4;-1:-1:-1;;;8848:28:4;;;8886:14;;8923:5;;8931:8;;;;-1:-1:-1;;;;;8886:14:4;;;;:29;;8923:5;8886:54;;-1:-1:-1;;;8886:54:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8886:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8971:7:4;;;;;9012:6;;;9020:8;;;;-1:-1:-1;;;;;8971:7:4;;;;-1:-1:-1;8971:7:4;;8997:14;;9012:6;;8971:7;8997:32;;;;;;;-1:-1:-1;;;8997:32:4;;;;;;-1:-1:-1;;;;;8997:32:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8989:41;;;;;;;;9095:5;;9083:10;9068:33;;;;;;;;;;8546:562;;;:::o;315:191:6:-;359:8;;:::i;:::-;406:7;394:1;383:13;;;;;;;;;;;;;;;;;;;;;;;;379:17;;452:1;446:7;;497:2;490:1;492;490:4;;;;;;;;;;;;;;;;:9;-1:-1:-1;315:191:6;;-1:-1:-1;315:191:6:o;732:126:18:-;792:11;;:::i;:::-;822:29;834:2;-1:-1:-1;;;;;826:11:18;847:2;822:3;:29::i;:::-;815:36;732:126;-1:-1:-1;;;732:126:18:o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1481:148:18:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:18:o;767:94:27:-;842:12;767:94;:::o;1808:7827:4:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1808:7827:4;;;;;;;;-1:-1:-1;;1808:7827:4;;;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "1235400", + "executionCost": "1283", + "totalCost": "1236683" + }, + "external": { + "AUTHORIZE_PAYMENT_ROLE()": "726", + "CANCEL_PAYMENT_ROLE()": "374", + "CONFIRM_PAYMENT_ROLE()": "506", + "ESCAPE_HATCH_CALLER_ROLE()": "748", + "EVMSCRIPT_REGISTRY_APP()": "793", + "EVMSCRIPT_REGISTRY_APP_ID()": "418", + "SET_AUTOPAY_ROLE()": "396", + "appId()": "590", + "authorizePayment(bytes32,address,address,uint256)": "infinite", + "autoPay()": "932", + "canPerform(address,bytes32,uint256[])": "infinite", + "cancelPayment(uint256)": "infinite", + "confirmPayment(uint256)": "infinite", + "escapeFunds(address,uint256)": "infinite", + "escapeHatch(address)": "infinite", + "escapeHatchDestination()": "1139", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "722", + "initialize(address)": "992", + "initialize(address,address)": "61897", + "isTokenEscapable(address)": "937", + "kernel()": "1117", + "liquidPledging()": "721", + "multiCancel(uint256[])": "infinite", + "multiConfirm(uint256[])": "infinite", + "nPayments()": "459", + "payments(uint256)": "2154", + "setAutopay(bool)": "infinite" + }, + "internal": { + "_doCancelPayment(uint256)": "infinite", + "_doConfirmPayment(uint256)": "infinite" + } + }, + "methodIdentifiers": { + "AUTHORIZE_PAYMENT_ROLE()": "a91c86a6", + "CANCEL_PAYMENT_ROLE()": "4ad65a68", + "CONFIRM_PAYMENT_ROLE()": "866836ff", + "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "SET_AUTOPAY_ROLE()": "539854cd", + "appId()": "80afdea8", + "authorizePayment(bytes32,address,address,uint256)": "a5426df1", + "autoPay()": "bbc32820", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "cancelPayment(uint256)": "8422927d", + "confirmPayment(uint256)": "876ca09f", + "escapeFunds(address,uint256)": "1b28591c", + "escapeHatch(address)": "a142d608", + "escapeHatchDestination()": "f5b61230", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "initialize(address)": "c4d66de8", + "initialize(address,address)": "485cc955", + "isTokenEscapable(address)": "892db057", + "kernel()": "d4aae0c4", + "liquidPledging()": "74041d1f", + "multiCancel(uint256[])": "b796105c", + "multiConfirm(uint256[])": "ffd82d21", + "nPayments()": "3baf35fb", + "payments(uint256)": "87d81789", + "setAutopay(bool)": "a4500c33" + } + }, + "userdoc": { + "methods": { + "authorizePayment(bytes32,address,address,uint256)": { + "notice": "If `autoPay == true` the transfer happens automatically `else` the `owner` must call `confirmPayment()` for a transfer to occur (training wheels); either way, a new payment is added to `payments[]` " + }, + "cancelPayment(uint256)": { + "notice": "When `autopay` is `false` and after a payment has been authorized to allow the owner to cancel a payment instead of confirming it." + }, + "confirmPayment(uint256)": { + "notice": "Allows the owner to confirm payments; since `authorizePayment` is the only way to populate the `payments[]` array this is generally used when `autopay` is `false` after a payment has has been authorized" + }, + "escapeFunds(address,uint256)": { + "notice": "Transfer tokens to the escapeHatchDestination. Used as a safety mechanism to prevent the vault from holding too much value before being thoroughly battle-tested." + }, + "escapeHatch(address)": { + "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" + }, + "isTokenEscapable(address)": { + "notice": "Checks to see if `_token` is in the blacklist of tokens" + }, + "multiCancel(uint256[])": { + "notice": "`onlyOwner` An efficient way to cancel multiple payments" + }, + "multiConfirm(uint256[])": { + "notice": "`onlyOwner` An efficient way to confirm multiple payments" + }, + "setAutopay(bool)": { + "notice": "Used to decentralize, toggles whether the LPVault will automatically confirm a payment after the payment has been authorized" + } + } + } + } + }, + "./contracts/LiquidPledging.sol": { + "LiquidPledging": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "idReceiver", + "type": "uint64" + }, + { + "name": "donorAddress", + "type": "address" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "addGiverAndDonate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "whitelistDisabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "projectId", + "type": "uint64" + } + ], + "name": "isProjectCanceled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PLUGIN_MANAGER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledges", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "confirmPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "idxDelegate", + "type": "uint64" + } + ], + "name": "getPledgeDelegate", + "outputs": [ + { + "name": "idDelegate", + "type": "uint64" + }, + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHashes", + "type": "bytes32[]" + } + ], + "name": "addValidPluginContracts", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "useWhitelist", + "type": "bool" + } + ], + "name": "useWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + } + ], + "name": "getPledge", + "outputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "owner", + "type": "uint64" + }, + { + "name": "nDelegates", + "type": "uint64" + }, + { + "name": "intendedProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "oldPledge", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "pledgeState", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idSender", + "type": "uint64" + }, + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "idReceiver", + "type": "uint64" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vault", + "type": "address" + }, + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idGiver", + "type": "uint64" + }, + { + "name": "idReceiver", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "donate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "isValidPlugin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + } + ], + "name": "normalizePledge", + "outputs": [ + { + "name": "", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addDelegate", + "outputs": [ + { + "name": "idDelegate", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledgeAdmins", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgesAmounts", + "type": "uint256[]" + } + ], + "name": "mWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "removeValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idReceiver", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "addGiverAndDonate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "projectAdmin", + "type": "address" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addProject", + "outputs": [ + { + "name": "idProject", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idProject", + "type": "uint64" + } + ], + "name": "cancelProject", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "addValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getCodeHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "isTokenEscapable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgesAmounts", + "type": "uint256[]" + } + ], + "name": "mConfirmPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "escapeHatch", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "cancelPledge", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ESCAPE_HATCH_CALLER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "removeValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "addValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idDelegate", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateDelegate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledges", + "type": "uint64[]" + } + ], + "name": "mNormalizePledge", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idSender", + "type": "uint64" + }, + { + "name": "pledgesAmounts", + "type": "uint256[]" + }, + { + "name": "idReceiver", + "type": "uint64" + } + ], + "name": "mTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idGiver", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateGiver", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "cancelPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idAdmin", + "type": "uint64" + } + ], + "name": "getPledgeAdmin", + "outputs": [ + { + "name": "adminType", + "type": "uint8" + }, + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "canceled", + "type": "bool" + }, + { + "name": "plugin", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgesAmounts", + "type": "uint256[]" + } + ], + "name": "mCancelPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "escapeHatchDestination", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idProject", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateProject", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vault", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "uint256" + }, + { + "indexed": true, + "name": "to", + "type": "uint256" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint256" + } + ], + "name": "CancelProject", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + } + ], + "name": "EscapeHatchBlackistedToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "EscapeHatchCalled", + "type": "event" + } + ], + "devdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "name": "The name used to identify the Delegate", + "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Delegate's profile often an IPFS hash" + }, + "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" + }, + "addGiver(string,string,uint64,address)": { + "params": { + "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "name": "The name used to identify the Giver", + "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Giver's profile often an IPFS hash" + }, + "return": "idGiver The id number used to reference this Admin" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", + "name": "The name used to identify the Project", + "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", + "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", + "projectAdmin": "The address for the trusted project manager", + "url": "The link to the Project's profile often an IPFS hash" + }, + "return": "idProject The id number used to reference this Admin" + }, + "cancelPayment(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be canceled", + "idPledge": "Id of the pledge that's withdraw is to be canceled" + } + }, + "cancelPledge(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be transfered to the `oldPledge`", + "idPledge": "Id of the pledge that is to be canceled" + } + }, + "cancelProject(uint64)": { + "params": { + "idProject": "Id of the project that is to be canceled" + } + }, + "confirmPayment(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be withdrawn", + "idPledge": "Id of the pledge that is to be withdrawn" + } + }, + "donate(uint64,uint64,address,uint256)": { + "params": { + "idGiver": "The id of the Giver donating; if 0, a new id is created", + "idReceiver": "The Admin receiving the donation; can be any Admin: the Giver themselves, another Giver, a Delegate or a Project" + } + }, + "escapeHatch(address)": { + "params": { + "_token": "to transfer, use 0x0 for ether" + } + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "getPledge(uint64)": { + "params": { + "idPledge": "the id number of the pledge being queried" + }, + "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" + }, + "getPledgeAdmin(uint64)": { + "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" + }, + "getPledgeDelegate(uint64,uint64)": { + "params": { + "idPledge": "The id number representing the pledge being queried", + "idxDelegate": "The index number for the delegate in this Pledge " + } + }, + "initialize(address,address)": { + "params": { + "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 ", + "_vault": "The vault where the ETH backing the pledges is stored" + } + }, + "isProjectCanceled(uint64)": { + "params": { + "projectId": "The Admin id number used to specify the Project" + }, + "return": "True if the Project has been canceled" + }, + "isTokenEscapable(address)": { + "params": { + "_token": "the token address being queried" + }, + "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" + }, + "mCancelPayment(uint256[])": { + "params": { + "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" + } + }, + "mConfirmPayment(uint256[])": { + "params": { + "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" + } + }, + "mNormalizePledge(uint64[])": { + "params": { + "pledges": "An array of pledge IDs" + } + }, + "mTransfer(uint64,uint256[],uint64)": { + "params": { + "idReceiver": "Destination of the `pledesAmounts`, can be a Giver or Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", + "idSender": "Id of the Admin that is transferring the amounts from all the Pledges; this admin must have permissions to move the value", + "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" + } + }, + "mWithdraw(uint256[])": { + "params": { + "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" + } + }, + "normalizePledge(uint64)": { + "params": { + "idPledge": "This is the id of the pledge that will be normalized" + }, + "return": "The normalized Pledge!" + }, + "numberOfPledgeAdmins()": { + "return": "The total number of admins (Givers, Delegates and Projects) ." + }, + "numberOfPledges()": { + "return": "The total number of Pledges in the system" + }, + "transfer(uint64,uint64,uint256,uint64)": { + "params": { + "amount": "Quantity of ETH (in wei) that this pledge is transferring the authority to withdraw from the vault", + "idPledge": "Id of the pledge that's moving the value", + "idReceiver": "Destination of the `amount`, can be a Giver/Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", + "idSender": "Id of the Admin that is transferring the amount from Pledge to Pledge; this admin must have permissions to move the value" + } + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "params": { + "idDelegate": "The Admin id number used to specify the Delegate", + "newAddr": "The new address that represents this Delegate", + "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "newName": "The new name used to identify the Delegate", + "newUrl": "The new link to the Delegate's profile often an IPFS hash" + } + }, + "updateGiver(uint64,address,string,string,uint64)": { + "params": { + "idGiver": "This is the Admin id number used to specify the Giver", + "newAddr": "The new address that represents this Giver", + "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "newName": "The new name used to identify the Giver", + "newUrl": "The new link to the Giver's profile often an IPFS hash" + } + }, + "updateProject(uint64,address,string,string,uint64)": { + "params": { + "idProject": "The Admin id number used to specify the Project", + "newAddr": "The new address that represents this Project", + "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", + "newName": "The new name used to identify the Project", + "newUrl": "The new link to the Project's profile often an IPFS hash" + } + }, + "withdraw(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be authorized", + "idPledge": "Id of the pledge that is to be redeemed into ether" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029", + "sourceMap": "1113:9918:5:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1113:9918:5;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029", + "sourceMap": "1113:9918:5:-;;;;;;;;;-1:-1:-1;;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1339:359;;;;;;;;;;-1:-1:-1;;;;;1339:359:5;;;-1:-1:-1;;;;;1339:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;-1:-1:-1;;;;;11553:482:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;5348:455:5;;;;;;;;;;-1:-1:-1;;;;;5348:455:5;;;;;;;2790:397:7;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226:9;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;1903:611:12;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687:5;;;;;;;;;;-1:-1:-1;;;;;4415:687:5;;;;;;;3857:235;;;;;;;;;;-1:-1:-1;;;;;3857:235:5;;;;;;;;;;;;;;;;;;2143:319:7;;;;;;;;;;-1:-1:-1;;;;;2143:319:7;;;;;;;;;;2273:927:5;;;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;2126:450:9;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4196:1304:7;;;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;;;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;-1:-1:-1;;;;;4897:582:11;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;9903:103;;;;;;;;;;;;9383:287:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9383:287:5;;-1:-1:-1;9383:287:5;;-1:-1:-1;;;;;;9383:287:5;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;1167:166:5;;;;;;;;;;-1:-1:-1;;;;;1167:166:5;;;-1:-1:-1;;;;;1167:166:5;;;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;-1:-1:-1;;;;;2463:606:11;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;-1:-1:-1;;;;;7535:894:11;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;6799:220:5;;;;;;;;;;-1:-1:-1;;;;;6799:220:5;;;;;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;-1:-1:-1;;;;;2051:311:11;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;269:107:27;;;;;;;;;;;;9894:299:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9894:299:5;;-1:-1:-1;9894:299:5;;-1:-1:-1;;;;;;9894:299:5;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;7320:352:5;;;;;;;;;;-1:-1:-1;;;;;7320:352:5;;;;;;;1330:88:0;;;;;;;;;;;;1670:174:9;;;;;;;;;;;;;;1635:162:7;;;;;;;;;;-1:-1:-1;;;;;1635:162:7;;;;;1284:148:9;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;-1:-1:-1;;;;;6233:531:11;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;10865:164:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10865:164:5;;-1:-1:-1;10865:164:5;;-1:-1:-1;;;;;;10865:164:5;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;8680:380:5;;;;;;;;;;;;;-1:-1:-1;;;;;8680:380:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8680:380:5;;-1:-1:-1;;;8680:380:5;;-1:-1:-1;;;;;8680:380:5;;-1:-1:-1;8680:380:5;;-1:-1:-1;;8680:380:5;3709:511:11;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;-1:-1:-1;;;;;3709:511:11;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;6066:581:5;;;;;;;;;;-1:-1:-1;;;;;6066:581:5;;;;;;;10774:572:11;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10415:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10415:297:5;;-1:-1:-1;10415:297:5;;-1:-1:-1;;;;;;10415:297:5;1536:37:0;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;-1:-1:-1;;;;;9133:520:11;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;1339:359:5;1558:14;-1:-1:-1;;;;;1472:17:5;;;;1464:26;;;;;;1575:64;1584:12;1575:64;;;;;;;;;;;;;;;;;;;;;;;;;1606:6;;1575:8;:64::i;:::-;1558:81;;1649:42;1656:7;1665:10;1677:5;1684:6;1649;:42::i;:::-;1339:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;-1:-1:-1;;;11857:10:11;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;-1:-1:-1;;;;;11918:15:11;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;-1:-1:-1;;;;;12012:15:11;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;;:::o;5348:455:5:-;1556:5:7;;5429:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;5448:21:5;5460:8;5448:11;:21::i;:::-;5429:40;-1:-1:-1;5505:18:5;5488:13;;;;-1:-1:-1;;;5488:13:5;;;;:35;;;;;;;;;5480:44;;;;;;5589:7;;;;;5610:17;;5556:187;;;;-1:-1:-1;;;;;5589:7:5;;5610:17;5556:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5556:187:5;-1:-1:-1;;;;;5556:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5671:11:5;;;;;5696:7;;;;5641:1;;-1:-1:-1;5641:1:5;;-1:-1:-1;;;5671:11:5;;;-1:-1:-1;;;;;5671:11:5;;-1:-1:-1;;;;;5696:7:5;;;;5556:19;:187::i;:::-;5535:208;;5754:42;5766:8;5776:11;5789:6;5754:11;:42::i;:::-;5348:455;;;;:::o;2790:397:7:-;2883:17;2910:12;2932:11;;:::i;:::-;2960:16;3067:28;2979:21;2991:8;2979:11;:21::i;:::-;2960:40;;3023:1;:17;;3055:1;3041:11;:15;-1:-1:-1;;;;;3023:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3023:34:7;3010:47;;3098:22;3109:10;3098;:22::i;:::-;3067:53;;3137:8;:13;;;;;;;;;;-1:-1:-1;;;;;3137:13:7;3130:20;;3167:8;:13;;3160:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:397;;;;;;;:::o;1438:226:9:-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;1994:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;1903:611:12:-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;4415:687:5:-;4551:16;4691:18;4965:25;4491;4507:8;4491:15;:25::i;:::-;4480:36;;4570:21;4582:8;4570:11;:21::i;:::-;4551:40;-1:-1:-1;4626:19:5;4609:13;;;;-1:-1:-1;;;4609:13:5;;;;:36;;;;;;;;;4601:45;;;;;;4672:7;;;;4656:24;;-1:-1:-1;;;;;4672:7:5;4656:15;:24::i;:::-;4745:7;;;;;4766:17;;4712:189;;;;-1:-1:-1;;;;;4745:7:5;;4766:17;4712:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4712:189:5;-1:-1:-1;;;;;4712:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4827:11:5;;;;4852:7;;;;4797:1;;-1:-1:-1;4797:1:5;;-1:-1:-1;;;4827:11:5;;-1:-1:-1;;;;;4827:11:5;;-1:-1:-1;;;;;4852:7:5;;4712:19;:189::i;:::-;4691:210;;4912:42;4924:8;4934:11;4947:6;4912:11;:42::i;:::-;5004:7;;;;4993:19;;-1:-1:-1;;;;;5004:7:5;4993:10;:19::i;:::-;5022:5;;5067:10;;5079:7;;;;4965:47;;-1:-1:-1;;;;;;5022:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5045:20:5;;;5067:10;;;;5079:7;5088:6;5022:73;;-1:-1:-1;;;5022:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5022:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687;;;;;:::o;3857:235::-;4001:25;4017:8;4001:15;:25::i;:::-;4036:49;4046:8;4056;4066:6;4074:10;4036:9;:49::i;2143:319:7:-;140:19:27;;:24;132:33;;;;;;2238:41:7;2255:23;2238:16;:41::i;:::-;-1:-1:-1;;;;;2297:13:7;;;;2289:22;;;;;;2322:5;:24;;-1:-1:-1;;;;;;2322:24:7;;-1:-1:-1;;;;;2322:24:7;;;;;;-1:-1:-1;2357:17:7;:6;-1:-1:-1;2357:17:7;:::i;:::-;-1:-1:-1;2427:1:7;2410:18;:7;2427:1;2410:18;:::i;:::-;;2143:319;;:::o;2273:927:5:-;2537:26;;;-1:-1:-1;;;;;2389:11:5;;;;;2381:20;;;;;;2493:1;2484:10;;2476:19;;;;;;-1:-1:-1;;;;;2513:12:5;;;;2505:21;;;;;;2566:19;2577:7;2566:10;:19::i;:::-;2537:48;-1:-1:-1;2623:21:5;2603:16;;;;:41;;;;;;;;;2595:50;;;;;;2710:5;;-1:-1:-1;;;;;2664:25:5;;;;;;2690:10;;2710:5;;;;2718:6;2664:61;;;;;;;;-1:-1:-1;;;2664:61:5;;;;;;-1:-1:-1;;;;;2664:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2656:70;;;;;;;;2792:219;2825:7;2859:1;2846:15;;;;;;;;;;;;;;;;;;;;;;;;2918:1;2933;2948;2963:5;2982:19;2792;:219::i;:::-;2774:237;;3043:21;3055:8;3043:11;:21::i;:::-;3074:20;;;;;;3022:42;-1:-1:-1;;;;;;3105:29:5;;3074:10;3105:29;3088:6;3105:29;;;;;;;;;;;;;;3145:48;3155:7;3164:8;3174:6;3182:10;3145:9;:48::i;:::-;2273:927;;;;;;;:::o;2126:450:9:-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4196:1304:7:-;4253:6;4271:16;4669;4924:15;4290:21;4302:8;4290:11;:21::i;:::-;4271:40;-1:-1:-1;4457:19:7;4440:13;;;;-1:-1:-1;;;4440:13:7;;;;:36;;;;;;;;;4436:82;;4499:8;4492:15;;;;4436:82;4599:17;;;;4619:1;-1:-1:-1;;;4599:17:7;;;-1:-1:-1;;;;;4599:17:7;:21;4598:55;;;;-1:-1:-1;4640:12:7;;;;-1:-1:-1;;;4640:12:7;;-1:-1:-1;;;;;4640:12:7;4627:10;:8;:10::i;:::-;:25;4598:55;4594:714;;;4725:7;;;;;4750:17;;4688:222;;;;-1:-1:-1;;;;;4725:7:7;;4750:17;4688:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4688:222:7;-1:-1:-1;;;;;4688:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4823:11:7;;;;4852:7;;;;4785:1;;-1:-1:-1;4785:1:7;;-1:-1:-1;;;4823:11:7;;-1:-1:-1;;;;;4823:11:7;;-1:-1:-1;;;;;4852:7:7;4785:1;4688:19;:222::i;:::-;4979:17;;;;4669:241;;-1:-1:-1;4942:228:7;;-1:-1:-1;;;4979:17:7;;-1:-1:-1;;;;;4979:17:7;5027:1;5014:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5112:7:7;;;;5047:1;;;;5085:9;;-1:-1:-1;;;;;5112:7:7;5047:1;4942:19;:228::i;:::-;4924:246;;5184:41;5196:8;5206;5216:1;:8;;;5184:11;:41::i;:::-;5250:8;5239:19;;5276:21;5288:8;5276:11;:21::i;:::-;5272:25;;4594:714;5329:37;5357:8;5329:27;:37::i;:::-;5318:48;-1:-1:-1;;;;;;5380:20:7;;;;;;;5376:92;;5416:41;5428:8;5438;5448:1;:8;;;5416:11;:41::i;:::-;5485:8;5478:15;;4196:1304;;;;;;;:::o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;-1:-1:-1;;;;;5207:219:11;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;-1:-1:-1;;;;;5447:25:11;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;:::o;9383:287:5:-;9447:6;;;9442:222;9463:14;:21;9459:1;:25;9442:222;;;-1:-1:-1;;;;;9532:14:5;9547:1;9532:14;:17;;;;;;;;;;;;;;;:27;9506:55;;-1:-1:-1;;;9589:14:5;9604:1;9589:17;;;;;;;;;;;;;;;;:23;;;;;;;;9575:37;;9627:26;9636:8;9646:6;9627:8;:26::i;:::-;9486:3;;;;;9442:222;;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;1167:166:5:-;1270:56;1288:10;1300;1312:5;1319:6;1270:17;:56::i;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;-1:-1:-1;;;;;2812:210:11;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;-1:-1:-1;;;;;3043:19:11;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;-1:-1:-1;;;;;7821:18:11;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8013:42:11;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;-1:-1:-1;;;;;8399:23:11;;;;;;;;;;;7535:894;;;;;;;;;:::o;6799:220:5:-;6857:27;6887:21;6898:9;6887:10;:21::i;:::-;6857:51;;6918:26;6934:9;6918:15;:26::i;:::-;6973:4;6954:16;;:23;;-1:-1:-1;;6954:23:5;-1:-1:-1;;;6954:23:5;;;-1:-1:-1;;;;;6988:24:5;;;;;;;;;;;;6799:220;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;9894:299:5:-;9964:6;;;9959:228;9980:14;:21;9976:1;:25;9959:228;;;-1:-1:-1;;;;;10049:14:5;10064:1;10049:14;:17;;;;;;;;;;;;;;;:27;10023:55;;-1:-1:-1;;;10106:14:5;10121:1;10106:17;;;;;;;;;;;;;;;;:23;;;;;;;;10092:37;;10144:32;10159:8;10169:6;10144:14;:32::i;:::-;10003:3;;;;;9959:228;;158:103:31;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;2416:624;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;7320:352:5:-;7436:16;7556;7400:25;7416:8;7400:15;:25::i;:::-;7389:36;;7455:21;7467:8;7455:11;:21::i;:::-;7494:11;;;;;;-1:-1:-1;;;;7494:11:5;;-1:-1:-1;;;;;7494:11:5;:16;;7486:25;;;;;;7537:7;;;;7521:24;;-1:-1:-1;;;;;7537:7:5;7521:15;:24::i;:::-;7603:11;;;;7575:40;;-1:-1:-1;;;7603:11:5;;-1:-1:-1;;;;;7603:11:5;7575:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1635:162:7:-;140:19:27;;:24;132:33;;;;;1714:14:7;1635:162;:::o;1284:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;-1:-1:-1;;;;;6684:35:11;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;10865:164:5:-;10931:6;10926:97;10947:7;:14;10943:1;:18;10926:97;;;10983:29;11000:7;11008:1;11000:10;;;;;;;;;;;;;;;;10983:15;:29::i;:::-;-1:-1:-1;10963:3:5;;10926:97;;;10865:164;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;8680:380:5:-;8815:6;;;8810:244;8831:14;:21;8827:1;:25;8810:244;;;-1:-1:-1;;;;;8900:14:5;8915:1;8900:14;:17;;;;;;;;;;;;;;;:27;8874:55;;-1:-1:-1;;;8957:14:5;8972:1;8957:17;;;;;;;;;;;;;;;;:23;;;;;;;;8943:37;;8995:48;9004:8;9014;9024:6;9032:10;8995:8;:48::i;:::-;8854:3;;;;;8810:244;;;8680:380;;;;;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;-1:-1:-1;;;;;4149:32:11;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;6066:581:5:-;1556:5:7;;6146:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;6165:21:5;6177:8;6165:11;:21::i;:::-;6146:40;-1:-1:-1;6222:18:5;6205:13;;;;-1:-1:-1;;;6205:13:5;;;;:35;;;;;;;;;6197:44;;;;;;6377:7;;;;;6398:17;;6344:190;;;;-1:-1:-1;;;;;6377:7:5;;6398:17;6344:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6344:190:5;-1:-1:-1;;;;;6344:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6459:11:5;;;;6484:7;;;;6429:1;;-1:-1:-1;6429:1:5;;-1:-1:-1;;;6459:11:5;;-1:-1:-1;;;;;6459:11:5;;-1:-1:-1;;;;;6484:7:5;6429:1;6344:19;:190::i;:::-;6323:211;;6559:28;6575:11;6559:15;:28::i;10774:572:11:-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;-1:-1:-1;;;;;11219:12:11;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;;;;11293:10:11;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;10415:297:5:-;10484:6;;;10479:227;10500:14;:21;10496:1;:25;10479:227;;;-1:-1:-1;;;;;10569:14:5;10584:1;10569:14;:17;;;;;;;;;;;;;;;:27;10543:55;;-1:-1:-1;;;10626:14:5;10641:1;10626:17;;;;;;;;;;;;;;;;:23;;;;;;;;10612:37;;10664:31;10678:8;10688:6;10664:13;:31::i;:::-;10523:3;;;;;10479:227;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9133:520:11:-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;-1:-1:-1;;;;;9576:34:11;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;-1:-1:-1;;;;;12371:23:11;;;12363:32;;;;;;12412:6;:15;;-1:-1:-1;;;;;12412:15:11;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;4554::12:-;4659:7;:14;4614:6;;-1:-1:-1;;;;;4648:25:12;;;4640:34;;;;;;4691:7;:17;;-1:-1:-1;;;;;4691:17:12;;;;;;;;3613:842;3857:6;3879:15;3994:9;3907:15;3924:5;3931:15;3948:10;3960:9;3971:5;3978;3897:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4006:20:12;;;;-1:-1:-1;4040:6:12;;4036:46;;;4069:2;4062:9;;;;4036:46;-1:-1:-1;4104:7:12;:14;;4129:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4129:25:12;-1:-1:-1;;;;;4129:25:12;;;;;4164:265;;4104:14;;:7;-1:-1:-1;4164:265:12;;;4104:7;4164:265;;:::i;:::-;;;;;;;;;;;;4190:229;;;;;;;;;4214:1;4190:229;;;;4233:15;4190:229;;;;4266:5;-1:-1:-1;;;;;4190:229:12;;;;;4289:15;-1:-1:-1;;;;;4190:229:12;;;;;4322:10;-1:-1:-1;;;;;4190:229:12;;;;;4350:9;-1:-1:-1;;;;;4190:229:12;;;;;4377:5;-1:-1:-1;;;;;4190:229:12;;;;;4400:5;4190:229;;;;;;;;;;4164:265;;-1:-1:-1;4164:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;4164:265:12;;;;;;;;;;;;;;;;;4446:2;4439:9;;3613:842;;;;;;;;;;;;:::o;17446:534:7:-;17524:11;17699:20;17749:18;17538:37;17551:4;17557;17563:2;17567:7;17538:12;:37::i;:::-;17524:51;;17597:2;-1:-1:-1;;;;;17589:10:7;:4;-1:-1:-1;;;;;17589:10:7;;17585:47;;;17615:7;;17585:47;17645:11;;17641:48;;;17672:7;;17641:48;17722:17;17734:4;17722:11;:17::i;:::-;17699:40;;17770:15;17782:2;17770:11;:15::i;:::-;17804:12;;17749:36;;-1:-1:-1;17804:22:7;;;;17796:31;;;;;;17837:22;;;;;;;17869:20;;;;;;-1:-1:-1;;;;;17900:26:7;;;;;;;17853:6;17900:26;;;;;;;;;;;;;;17936:37;17949:5;17956:4;17962:2;17966:6;17936:12;:37::i;5741:193::-;5810:21;5834:19;5845:7;5834:10;:19::i;:::-;5893:8;;;;5810:43;;-1:-1:-1;5871:10:7;-1:-1:-1;;;;;5871:31:7;;;5893:8;;;;;5871:31;;:55;;-1:-1:-1;5920:6:7;;5906:10;-1:-1:-1;;;;;5906:20:7;;;5920:6;;;;;5906:20;5871:55;5863:64;;;;;;;5940:5495;6192:16;;;;;;-1:-1:-1;;;;;6095:14:7;;;;;6087:23;;;;;;6156:25;6172:8;6156:15;:25::i;:::-;6145:36;;6211:21;6223:8;6211:11;:21::i;:::-;6192:40;;6273:22;6284:10;6273;:22::i;:::-;6242:53;-1:-1:-1;6331:19:7;6314:13;;;;-1:-1:-1;;;6314:13:7;;;;:36;;;;;;;;;6306:45;;;;;;6418:7;;;;-1:-1:-1;;;;;6418:19:7;;;:7;;:19;6414:2102;;;6480:21;6458:18;;;;:43;;;;;;;;;6454:2032;;;6521:55;6547:8;6557:6;6565:10;6521:25;:55::i;:::-;6454:2032;;;6623:23;6601:18;;;;:45;;;;;;;;;6597:1889;;;6666:57;6694:8;6704:6;6712:10;6666:27;:57::i;6597:1889::-;6770:24;6748:18;;;;:46;;;;;;;;;6744:1742;;;6835:30;6851:1;6835:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;-1:-1:-1;;6835:30:7;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6854:10:7;6835:15;:30::i;:::-;6887:17;;;;-1:-1:-1;;;;;6815:50:7;;;;-1:-1:-1;6907:1:7;-1:-1:-1;;;6887:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6912:24:7;;;6887:49;6883:1389;;;7251:1;7224:17;;:24;-1:-1:-1;;7224:28:7;7208:44;;7204:604;;;7347:7;;;;;7384:17;;7298:293;;;;-1:-1:-1;;;;;7347:7:7;;7384:17;7298:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7298:293:7;-1:-1:-1;;;;;7298:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7493:11:7;;;;7534:7;;;;7431:1;;-1:-1:-1;7431:1:7;;-1:-1:-1;;;7493:11:7;;-1:-1:-1;;;;;7493:11:7;;-1:-1:-1;;;;;7534:7:7;7431:1;7298:19;:293::i;:::-;7280:311;;7617:39;7629:8;7639;7649:6;7617:11;:39::i;:::-;7204:604;;;7711:74;7723:8;7733:6;7783:1;7768:12;7741:1;:17;;:24;;;;:39;:43;7711:11;:74::i;:::-;;7204:604;6883:1389;;;8037:149;8074:8;8108:6;8140:1;:17;;:24;;;;8037:11;:149::i;:::-;8026:160;;8208:45;8224:8;8234:6;8242:10;8208:15;:45::i;6744:1742::-;8458:13;;8499:7;;6414:2102;8583:28;8599:1;8583:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;-1:-1:-1;;8583:28:7;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8602:8:7;8583:15;:28::i;:::-;-1:-1:-1;;;;;8565:46:7;;;;-1:-1:-1;8625:22:7;;8621:2735;;8739:21;8717:18;;;;:43;;;;;;;;;8713:274;;;8853:7;;;;-1:-1:-1;;;;;8853:21:7;;;:7;;:21;8846:29;;;;8893:55;8905:8;8915:6;8923:1;:17;;:24;;;;8893:11;:55::i;:::-;;8966:7;;8713:274;9079:24;9057:18;;;;:46;;;;;;;;;9053:1785;;;9143:30;9159:1;9143:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;-1:-1:-1;;;9143:30:7;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9123:50:7;;;;-1:-1:-1;9246:24:7;;9242:1558;;;9305:166;9342:8;9376:6;9448:1;9435:10;9408:1;:17;;:24;;;;:37;:41;9305:11;:166::i;9242:1558::-;9823:10;9808:12;:25;9804:996;;;9868:166;9905:8;9939:6;10011:1;9998:10;9971:1;:17;;:24;;;;:37;:41;9868:11;:166::i;9804:996::-;10361:26;;;10357:443;;10613:168;10650:8;10684:6;10758:1;10743:12;10716:1;:17;;:24;;;;:39;:43;10613:11;:168::i;9053:1785::-;11034:23;11012:18;;;;:45;;;;;;;;;11008:338;;;11088:150;11121:8;11151:6;11219:1;11206:10;11179:1;:17;;:24;;;;:37;:41;11088:11;:150::i;:::-;11077:161;;11256:51;11278:8;11288:6;11296:10;11256:21;:51::i;11365:13::-;5940:5495;;;;;;;;;;:::o;2001:207:0:-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;25364:76:7:-;25430:3;25364:76;:::o;18963:583::-;19053:6;;;-1:-1:-1;;;;;19079:13:7;;;19075:52;;;19115:1;19108:8;;;;19075:52;19156:21;19168:8;19156:11;:21::i;:::-;19226:7;;;;19137:40;;-1:-1:-1;19215:19:7;;-1:-1:-1;;;;;19226:7:7;19215:10;:19::i;:::-;19187:47;-1:-1:-1;19276:21:7;19257:15;;;;:40;;;;;;;;;19253:86;;;19320:8;19313:15;;;;19253:86;19375:23;19356:15;;;;:42;;;;;;;;;19349:50;;;;19432:7;;;;19414:26;;-1:-1:-1;;;;;19432:7:7;19414:17;:26::i;:::-;19413:27;19409:73;;;19463:8;19456:15;;;;19409:73;19527:11;;;;19499:40;;-1:-1:-1;;;19527:11:7;;-1:-1:-1;;;;;19527:11:7;19499:27;:40::i;:::-;19492:47;;18963:583;;;;;;:::o;12650:311:11:-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;-1:-1:-1;;;;;12787:20:11;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;24597:649:7:-;24788:6;24873:145;24905:6;24925:10;;24973:8;24788:6;24873:18;:145::i;:::-;24857:161;;25096:143;25128:6;25148:8;25170:10;25194:8;25216:13;25096:18;:143::i;13269:444::-;13407:16;13458:15;13426:21;13438:8;13426:11;:21::i;:::-;13407:40;;13476:181;13509:10;13546:1;13533:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13607:7:7;;;;13562:1;;;;;;-1:-1:-1;;;;;13607:7:7;13562:1;13476:19;:181::i;:::-;13458:199;;13667:39;13679:8;13689;13699:6;13667:11;:39::i;11870:989::-;12010:16;12291;12510:15;12029:21;12041:8;12029:11;:21::i;:::-;12010:40;;1143:2:11;12187:18:7;12203:1;12187:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;-1:-1:-1;;12187:18:7;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12187:15:7;:18::i;:::-;:43;12179:52;;;;;;12250:29;12268:10;12250:17;:29::i;:::-;12249:30;12241:39;;;;;;12343:7;;;;;12364:17;;12310:190;;;;-1:-1:-1;;;;;12343:7:7;;12364:17;12310:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12310:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12425:11:7;;;;12450:7;;;;12395:1;;-1:-1:-1;12395:1:7;;-1:-1:-1;;;;12425:11:7;;;-1:-1:-1;;;;;12425:11:7;;-1:-1:-1;;;;;12450:7:7;12395:1;12310:19;:190::i;:::-;12291:209;;12528:275;12561:10;12639:1;12626:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12753:7:7;;;;12700:1;;;;12730:9;;-1:-1:-1;;;;;12753:7:7;12700:1;12528:19;:275::i;:::-;12510:293;;12813:39;12825:8;12835;12845:6;12813:11;:39::i;5220:290:12:-;5296:6;;5314:165;5335:1;:17;;;:24;5331:1;:28;5314:165;;;5408:10;-1:-1:-1;;;;;5384:34:12;:1;:17;;;5402:1;5384:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5384:34:12;;5380:89;;;5452:1;5438:16;;;;5380:89;5361:3;;5314:165;;;-1:-1:-1;;;;;5488:15:12;;5220:290;;;;;;:::o;15365:692:7:-;15472:15;15503:16;15553:34;;:::i;:::-;15670:6;15522:21;15534:8;15522:11;:21::i;:::-;15616:17;;;:24;15503:40;;-1:-1:-1;15616:28:7;;;15590:64;;;;;;;;;;;;;;;;;;;;;;;;15553:101;;15679:1;15670:10;;15665:125;15686:17;;;:24;:28;;;15682:32;;15665:125;;;15759:17;;;:20;;15777:1;;15759:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15759:20:7;15735:18;15754:1;15735:21;;;;;;;;-1:-1:-1;;;;;15735:44:7;;;:21;;;;;;;;;;:44;15716:3;;15665:125;;;15843:7;;;;15951;;;;15810:191;;-1:-1:-1;;;;;15843:7:7;;;;15864:18;;15843:7;;;;-1:-1:-1;;;15926:11:7;;;;;-1:-1:-1;;;;;15951:7:7;15843;15810:19;:191::i;:::-;15799:202;;16011:39;16023:8;16033;16043:6;16011:11;:39::i;:::-;15365:692;;;;;;;;:::o;14071:871::-;14199:16;14309:34;;:::i;:::-;14425:6;14677:15;14218:21;14230:8;14218:11;:21::i;:::-;14258:17;;;:24;14199:40;;-1:-1:-1;1085:2:12;14258:40:7;;14250:49;;;;;;14372:17;;;;:24;:28;14346:64;;;;;;;;;;;;;;;;;;;;;;;;14309:101;;14434:1;14425:10;;14420:121;14441:17;;;:24;14437:28;;14420:121;;;14510:17;;;:20;;14528:1;;14510:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14510:20:7;14486:18;14505:1;14486:21;;;;;;;;-1:-1:-1;;;;;14486:44:7;;;:21;;;;;;;;;;:44;14467:3;;;;;14420:121;;;14628:17;;;:24;14656:10;;14609:18;;;:44;;;;;;;-1:-1:-1;;;;;14609:57:7;;;:44;;;;;;;;:57;14728:7;;;;14836;;;;14695:191;;14728:7;;;;14749:18;;14728:7;;;;-1:-1:-1;;;14811:11:7;;;;-1:-1:-1;;;;;14836:7:7;14728;14695:19;:191::i;:::-;14677:209;;14896:39;14908:8;14918;14928:6;14896:11;:39::i;16483:607::-;16617:16;16780:15;16636:21;16648:8;16636:11;:21::i;:::-;16617:40;;1143:2:11;16676:18:7;16692:1;16676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;-1:-1:-1;;;16676:18:7;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;:43;16668:52;;;;;;16739:29;16757:10;16739:17;:29::i;:::-;16738:30;16730:39;;;;;;16831:7;;;;;16852:17;;16798:236;;;;-1:-1:-1;;;;;16831:7:7;;16852:17;16798:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16798:236:7;-1:-1:-1;;;;;16798:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16883:10;16927:17;16942:1;16927:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;-1:-1:-1;;16927:17:7;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16927:14:7;:17::i;:::-;-1:-1:-1;;;;;16914:30:7;:10;:8;:10::i;:::-;16959:11;;;;16984:7;;;;16914:30;;;;;-1:-1:-1;;;16959:11:7;;-1:-1:-1;;;;;16959:11:7;;-1:-1:-1;;;;;16984:7:7;;16798:19;:236::i;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;22510:1549:7:-;22681:18;22818:13;22908:16;23260:8;22846:10;-1:-1:-1;;;;;22834:22:7;:8;-1:-1:-1;;;;;22834:22:7;;:32;;22863:3;22834:32;;;22859:1;22834:32;22818:48;;;;22892:6;22876:22;;22927:21;22939:8;22927:11;:21::i;:::-;23067:7;;;;23154;;;;22908:40;;-1:-1:-1;23022:176:7;;23047:6;;-1:-1:-1;;;;;23067:7:7;;23088:10;;23112:8;;23134:6;;-1:-1:-1;;;;;23154:7:7;23175:13;23022:11;:176::i;:::-;23006:192;;23271:1;23260:12;;23255:324;23278:17;;;:24;-1:-1:-1;;;;;23274:28:7;;;23255:324;;;23339:229;23368:6;23392:1;:17;;23410:1;-1:-1:-1;;;;;23392:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23392:20:7;23430:10;23458:8;23493:1;23484:6;:10;23497:1;23484:14;23516:1;:7;;;;;;;;;;-1:-1:-1;;;;;23516:7:7;23541:13;23339:11;:229::i;:::-;23323:245;-1:-1:-1;23304:3:7;;23255:324;;;23765:17;;;;23785:1;-1:-1:-1;;;23765:17:7;;;-1:-1:-1;;;;;23765:17:7;:21;23761:292;;;23871:17;;;;23990:7;;;;23818:224;;23847:6;;-1:-1:-1;;;23871:17:7;;;-1:-1:-1;;;;;23871:17:7;;23906:10;;23934:8;;23969:3;23960:12;;;-1:-1:-1;;;;;23990:7:7;24015:13;23818:11;:224::i;:::-;23802:240;;23761:292;22510:1549;;;;;;;;;;:::o;5755:249:12:-;5812:4;5892:19;5832:1;:11;;;-1:-1:-1;;;;;5832:16:12;;5828:55;;;5871:1;5864:8;;;;5828:55;5914:24;5926:1;:11;;;5914;:24::i;:::-;5892:46;;5955:21;5971:4;5955:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;-1:-1:-1;;;5955:21:12;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;18233:513:7;18289:17;18318:21;18449:6;18342:19;18353:1;:7;;;18342:10;:19::i;:::-;18384:12;;-1:-1:-1;;;18384:12:7;;-1:-1:-1;;;;;18384:12:7;;-1:-1:-1;18384:12:7;-1:-1:-1;18384:12:7;;-1:-1:-1;18444:296:7;18465:1;:17;;;:24;18461:1;:28;18444:296;;;18514:32;18525:1;:17;;;18543:1;18525:20;;;;;;;;;;;;;;;;18514:10;:32::i;:::-;18645:12;;18510:36;;-1:-1:-1;;;;;;18645:25:7;;;-1:-1:-1;;;18645:12:7;;;;:25;18641:89;;;18703:12;;-1:-1:-1;;;18703:12:7;;-1:-1:-1;;;;;18703:12:7;;-1:-1:-1;18641:89:7;18491:3;;18444:296;;767:94:27;842:12;767:94;:::o;20517:1287:7:-;20802:6;20727:18;;20846:19;20857:7;20846:10;:19::i;:::-;20969:12;;;;;;-1:-1:-1;20969:12:7;;;-1:-1:-1;;;;;20969:12:7;20961:26;;;;:47;;;21007:1;20991:13;:17;20961:47;20957:841;;;21161:6;21157:631;;;21199:12;;;;;;;-1:-1:-1;;;;;21199:12:7;:27;21248:7;21277:10;21309:8;21339:7;21368:5;21395:6;21199:220;;;;;;;;-1:-1:-1;;;21199:220:7;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21445:26:7;;;;21437:35;;;;;;21506:9;21490:25;;21157:631;;;21554:12;;;;;;;-1:-1:-1;;;;;21554:12:7;:26;21602:7;21631:10;21663:8;21693:7;21722:5;21749:6;21554:219;;-1:-1:-1;;;21554:219:7;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20517:1287;;;;;;;;;;;:::o;1113:9918:5:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:9918:5;;;-1:-1:-1;1113:9918:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:9918:5;;;;;-1:-1:-1;;;;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:9918:5;;;-1:-1:-1;1113:9918:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1113:9918:5;;;;;;;;;;-1:-1:-1;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "4362600", + "executionCost": "25264", + "totalCost": "4387864" + }, + "external": { + "ESCAPE_HATCH_CALLER_ROLE()": "1100", + "EVMSCRIPT_REGISTRY_APP()": "1189", + "EVMSCRIPT_REGISTRY_APP_ID()": "726", + "PLUGIN_MANAGER_ROLE()": "infinite", + "addDelegate(string,string,uint64,address)": "infinite", + "addGiver(address,string,string,uint64,address)": "infinite", + "addGiver(string,string,uint64,address)": "infinite", + "addGiverAndDonate(uint64,address,address,uint256)": "infinite", + "addGiverAndDonate(uint64,address,uint256)": "infinite", + "addProject(string,string,address,uint64,uint64,address)": "infinite", + "addValidPluginContract(bytes32)": "infinite", + "addValidPluginContracts(bytes32[])": "infinite", + "addValidPluginInstance(address)": "infinite", + "appId()": "1030", + "canPerform(address,bytes32,uint256[])": "infinite", + "cancelPayment(uint64,uint256)": "infinite", + "cancelPledge(uint64,uint256)": "infinite", + "cancelProject(uint64)": "infinite", + "confirmPayment(uint64,uint256)": "infinite", + "donate(uint64,uint64,address,uint256)": "infinite", + "escapeHatch(address)": "infinite", + "escapeHatchDestination()": "1645", + "getCodeHash(address)": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "1096", + "getPledge(uint64)": "infinite", + "getPledgeAdmin(uint64)": "infinite", + "getPledgeDelegate(uint64,uint64)": "infinite", + "initialize(address)": "1322", + "initialize(address,address)": "infinite", + "isProjectCanceled(uint64)": "infinite", + "isTokenEscapable(address)": "1311", + "isValidPlugin(address)": "infinite", + "kernel()": "1513", + "mCancelPayment(uint256[])": "infinite", + "mConfirmPayment(uint256[])": "infinite", + "mNormalizePledge(uint64[])": "infinite", + "mTransfer(uint64,uint256[],uint64)": "infinite", + "mWithdraw(uint256[])": "infinite", + "normalizePledge(uint64)": "infinite", + "numberOfPledgeAdmins()": "819", + "numberOfPledges()": "534", + "removeValidPluginContract(bytes32)": "infinite", + "removeValidPluginInstance(address)": "infinite", + "transfer(uint64,uint64,uint256,uint64)": "infinite", + "updateDelegate(uint64,address,string,string,uint64)": "infinite", + "updateGiver(uint64,address,string,string,uint64)": "infinite", + "updateProject(uint64,address,string,string,uint64)": "infinite", + "useWhitelist(bool)": "infinite", + "vault()": "1722", + "whitelistDisabled()": "470", + "withdraw(uint64,uint256)": "infinite" + } + }, + "methodIdentifiers": { + "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "PLUGIN_MANAGER_ROLE()": "24fea3b0", + "addDelegate(string,string,uint64,address)": "52dc7dcc", + "addGiver(address,string,string,uint64,address)": "6e802c6a", + "addGiver(string,string,uint64,address)": "7f61fa93", + "addGiverAndDonate(uint64,address,address,uint256)": "007611c6", + "addGiverAndDonate(uint64,address,uint256)": "6ba3cc87", + "addProject(string,string,address,uint64,uint64,address)": "72116e92", + "addValidPluginContract(bytes32)": "c8ae070f", + "addValidPluginContracts(bytes32[])": "32ce8ebc", + "addValidPluginInstance(address)": "79f4542e", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "cancelPayment(uint64,uint256)": "e9c211e2", + "cancelPledge(uint64,uint256)": "af9f4563", + "cancelProject(uint64)": "796d5654", + "confirmPayment(uint64,uint256)": "2ee88808", + "donate(uint64,uint64,address,uint256)": "4c4316c7", + "escapeHatch(address)": "a142d608", + "escapeHatchDestination()": "f5b61230", + "getCodeHash(address)": "81ea4408", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "getPledge(uint64)": "3f657a46", + "getPledgeAdmin(uint64)": "eba8ba06", + "getPledgeDelegate(uint64,uint64)": "2f6b64ca", + "initialize(address)": "c4d66de8", + "initialize(address,address)": "485cc955", + "isProjectCanceled(uint64)": "2101a6ad", + "isTokenEscapable(address)": "892db057", + "isValidPlugin(address)": "4eafbcd5", + "kernel()": "d4aae0c4", + "mCancelPayment(uint256[])": "ef3766e4", + "mConfirmPayment(uint256[])": "9398f5a2", + "mNormalizePledge(uint64[])": "ce17273c", + "mTransfer(uint64,uint256[],uint64)": "d639cd73", + "mWithdraw(uint256[])": "57adafb6", + "normalizePledge(uint64)": "50f8a803", + "numberOfPledgeAdmins()": "5503d9ba", + "numberOfPledges()": "2a8ec8cc", + "removeValidPluginContract(bytes32)": "b12b5f76", + "removeValidPluginInstance(address)": "6293c702", + "transfer(uint64,uint64,uint256,uint64)": "47c5ef43", + "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", + "updateGiver(uint64,address,string,string,uint64)": "db7c2314", + "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", + "useWhitelist(bool)": "38740291", + "vault()": "fbfa77cf", + "whitelistDisabled()": "1c8e8568", + "withdraw(uint64,uint256)": "43387983" + } + }, + "userdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" + }, + "addGiver(string,string,uint64,address)": { + "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" + }, + "cancelPayment(uint64,uint256)": { + "notice": "`onlyVault` Cancels a withdraw request, changing the PledgeState from Paying back to Pledged" + }, + "cancelPledge(uint64,uint256)": { + "notice": "Transfers `amount` in `idPledge` back to the `oldPledge` that that sent it there in the first place, a Ctrl-z " + }, + "cancelProject(uint64)": { + "notice": "Changes the `project.canceled` flag to `true`; cannot be undone" + }, + "confirmPayment(uint64,uint256)": { + "notice": "`onlyVault` Confirms a withdraw request changing the PledgeState from Paying to Paid" + }, + "donate(uint64,uint64,address,uint256)": { + "notice": "This is how value enters the system and how pledges are created; the ether is sent to the vault, an pledge for the Giver is created (or found), the amount of ETH donated in wei is added to the `amount` in the Giver's Pledge, and an LP transfer is done to the idReceiver for the full amount" + }, + "escapeHatch(address)": { + "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" + }, + "getPledge(uint64)": { + "notice": "A getter that returns the details of the specified pledge" + }, + "getPledgeAdmin(uint64)": { + "notice": "A constant getter to check the details of a specified Admin" + }, + "getPledgeDelegate(uint64,uint64)": { + "notice": "//////////////////////////Getter to find Delegate w/ the Pledge ID & the Delegate index" + }, + "initialize(address)": { + "notice": "////////////" + }, + "isProjectCanceled(uint64)": { + "notice": "A getter to find if a specified Project has been canceled" + }, + "isTokenEscapable(address)": { + "notice": "Checks to see if `_token` is in the blacklist of tokens" + }, + "mCancelPayment(uint256[])": { + "notice": "`mCancelPayment` allows for multiple pledges to be canceled efficiently" + }, + "mConfirmPayment(uint256[])": { + "notice": "`mConfirmPayment` allows for multiple pledges to be confirmed efficiently" + }, + "mNormalizePledge(uint64[])": { + "notice": "`mNormalizePledge` allows for multiple pledges to be normalized efficiently" + }, + "mTransfer(uint64,uint256[],uint64)": { + "notice": "Transfers multiple amounts within multiple Pledges in an efficient single call " + }, + "mWithdraw(uint256[])": { + "notice": "Authorizes multiple amounts within multiple Pledges to be withdrawn from the `vault` in an efficient single call " + }, + "normalizePledge(uint64)": { + "notice": "Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" + }, + "numberOfPledgeAdmins()": { + "notice": "//////////////////////////A constant getter used to check how many total Admins exist" + }, + "numberOfPledges()": { + "notice": "/////////////////////////A constant getter that returns the total number of pledges" + }, + "transfer(uint64,uint64,uint256,uint64)": { + "notice": "Transfers amounts between pledges for internal accounting" + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" + }, + "updateGiver(uint64,address,string,string,uint64)": { + "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" + }, + "updateProject(uint64,address,string,string,uint64)": { + "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" + }, + "withdraw(uint64,uint256)": { + "notice": "Authorizes a payment be made from the `vault` can be used by the Giver to veto a pre-committed donation from a Delegate to an intendedProject" + } + } + } + } + }, + "./contracts/LiquidPledgingACLHelpers.sol": { + "LiquidPledgingACLHelpers": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029", + "sourceMap": "26:482:6:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029", + "sourceMap": "26:482:6:-;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "10600", + "executionCost": "61", + "totalCost": "10661" + }, + "internal": { + "arr(bool)": "infinite", + "arr(uint64,uint64,address,uint256,address)": "infinite" + } + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/LiquidPledgingBase.sol": { + "LiquidPledgingBase": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "whitelistDisabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "projectId", + "type": "uint64" + } + ], + "name": "isProjectCanceled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PLUGIN_MANAGER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledges", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "idxDelegate", + "type": "uint64" + } + ], + "name": "getPledgeDelegate", + "outputs": [ + { + "name": "idDelegate", + "type": "uint64" + }, + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHashes", + "type": "bytes32[]" + } + ], + "name": "addValidPluginContracts", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "useWhitelist", + "type": "bool" + } + ], + "name": "useWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + } + ], + "name": "getPledge", + "outputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "owner", + "type": "uint64" + }, + { + "name": "nDelegates", + "type": "uint64" + }, + { + "name": "intendedProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "oldPledge", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "pledgeState", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vault", + "type": "address" + }, + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "isValidPlugin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + } + ], + "name": "normalizePledge", + "outputs": [ + { + "name": "", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addDelegate", + "outputs": [ + { + "name": "idDelegate", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledgeAdmins", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "removeValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "projectAdmin", + "type": "address" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addProject", + "outputs": [ + { + "name": "idProject", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "addValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getCodeHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "isTokenEscapable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "escapeHatch", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ESCAPE_HATCH_CALLER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "removeValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "addValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idDelegate", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateDelegate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idGiver", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateGiver", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idAdmin", + "type": "uint64" + } + ], + "name": "getPledgeAdmin", + "outputs": [ + { + "name": "adminType", + "type": "uint8" + }, + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "canceled", + "type": "bool" + }, + { + "name": "plugin", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "escapeHatchDestination", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idProject", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateProject", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vault", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "uint256" + }, + { + "indexed": true, + "name": "to", + "type": "uint256" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint256" + } + ], + "name": "CancelProject", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + } + ], + "name": "EscapeHatchBlackistedToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "EscapeHatchCalled", + "type": "event" + } + ], + "devdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "name": "The name used to identify the Delegate", + "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Delegate's profile often an IPFS hash" + }, + "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" + }, + "addGiver(string,string,uint64,address)": { + "params": { + "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "name": "The name used to identify the Giver", + "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Giver's profile often an IPFS hash" + }, + "return": "idGiver The id number used to reference this Admin" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", + "name": "The name used to identify the Project", + "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", + "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", + "projectAdmin": "The address for the trusted project manager", + "url": "The link to the Project's profile often an IPFS hash" + }, + "return": "idProject The id number used to reference this Admin" + }, + "escapeHatch(address)": { + "params": { + "_token": "to transfer, use 0x0 for ether" + } + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "getPledge(uint64)": { + "params": { + "idPledge": "the id number of the pledge being queried" + }, + "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" + }, + "getPledgeAdmin(uint64)": { + "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" + }, + "getPledgeDelegate(uint64,uint64)": { + "params": { + "idPledge": "The id number representing the pledge being queried", + "idxDelegate": "The index number for the delegate in this Pledge " + } + }, + "initialize(address,address)": { + "params": { + "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 ", + "_vault": "The vault where the ETH backing the pledges is stored" + } + }, + "isProjectCanceled(uint64)": { + "params": { + "projectId": "The Admin id number used to specify the Project" + }, + "return": "True if the Project has been canceled" + }, + "isTokenEscapable(address)": { + "params": { + "_token": "the token address being queried" + }, + "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" + }, + "normalizePledge(uint64)": { + "params": { + "idPledge": "This is the id of the pledge that will be normalized" + }, + "return": "The normalized Pledge!" + }, + "numberOfPledgeAdmins()": { + "return": "The total number of admins (Givers, Delegates and Projects) ." + }, + "numberOfPledges()": { + "return": "The total number of Pledges in the system" + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "params": { + "idDelegate": "The Admin id number used to specify the Delegate", + "newAddr": "The new address that represents this Delegate", + "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "newName": "The new name used to identify the Delegate", + "newUrl": "The new link to the Delegate's profile often an IPFS hash" + } + }, + "updateGiver(uint64,address,string,string,uint64)": { + "params": { + "idGiver": "This is the Admin id number used to specify the Giver", + "newAddr": "The new address that represents this Giver", + "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "newName": "The new name used to identify the Giver", + "newUrl": "The new link to the Giver's profile often an IPFS hash" + } + }, + "updateProject(uint64,address,string,string,uint64)": { + "params": { + "idProject": "The Admin id number used to specify the Project", + "newAddr": "The new address that represents this Project", + "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", + "newName": "The new name used to identify the Project", + "newUrl": "The new link to the Project's profile often an IPFS hash" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029", + "sourceMap": "1112:24330:7:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1112:24330:7;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029", + "sourceMap": "1112:24330:7:-;;;;;;;;;-1:-1:-1;;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;-1:-1:-1;;;;;11553:482:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;2790:397:7;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226:9;;;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;1903:611:12;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:319:7;;;;;;;;;;-1:-1:-1;;;;;2143:319:7;;;;;;;;;;2126:450:9;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4196:1304:7;;;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;;;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;-1:-1:-1;;;;;4897:582:11;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;9903:103;;;;;;;;;;;;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;-1:-1:-1;;;;;2463:606:11;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;-1:-1:-1;;;;;7535:894:11;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;-1:-1:-1;;;;;2051:311:11;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1330:88:0;;;;;;;;;;;;1670:174:9;;;;;;;;;;;;;;1635:162:7;;;;;;;;;;-1:-1:-1;;;;;1635:162:7;;;;;1284:148:9;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;-1:-1:-1;;;;;6233:531:11;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;3709:511:11;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;-1:-1:-1;;;;;3709:511:11;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;10774:572;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;-1:-1:-1;;;;;9133:520:11;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;;;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;-1:-1:-1;;;;;11918:15:11;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;-1:-1:-1;;;;;12012:15:11;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;;:::o;2790:397:7:-;2883:17;2910:12;2932:11;;:::i;:::-;2960:16;3067:28;2979:21;2991:8;2979:11;:21::i;:::-;2960:40;;3023:1;:17;;3055:1;3041:11;:15;-1:-1:-1;;;;;3023:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3023:34:7;3010:47;;3098:22;3109:10;3098;:22::i;:::-;3067:53;;3137:8;:13;;;;;;;;;;-1:-1:-1;;;;;3137:13:7;3130:20;;3167:8;:13;;3160:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:397;;;;;;;:::o;1438:226:9:-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;;1438:226;;;;:::o;1994:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;1903:611:12:-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;2143:319:7:-;140:19:27;;:24;132:33;;;;;;2238:41:7;2255:23;2238:16;:41::i;:::-;-1:-1:-1;;;;;2297:13:7;;;;2289:22;;;;;;2322:5;:24;;-1:-1:-1;;;;;;2322:24:7;;-1:-1:-1;;;;;2322:24:7;;;;;;-1:-1:-1;2357:17:7;:6;-1:-1:-1;2357:17:7;:::i;:::-;-1:-1:-1;2427:1:7;2410:18;:7;2427:1;2410:18;:::i;:::-;;2143:319;;:::o;2126:450:9:-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4196:1304:7:-;4253:6;4271:16;4669;4924:15;4290:21;4302:8;4290:11;:21::i;:::-;4271:40;-1:-1:-1;4457:19:7;4440:13;;;;;;;;;:36;;;;;;;;;4436:82;;4499:8;4492:15;;;;4436:82;4599:17;;;;4619:1;4599:17;;;;-1:-1:-1;;;;;4599:17:7;:21;4598:55;;;;-1:-1:-1;4640:12:7;;;;;;;-1:-1:-1;;;;;4640:12:7;4627:10;:8;:10::i;:::-;:25;4598:55;4594:714;;;4725:7;;;;;4750:17;;4688:222;;;;-1:-1:-1;;;;;4725:7:7;;4750:17;4688:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4688:222:7;-1:-1:-1;;;;;4688:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4823:11:7;;;;4852:7;;;;4785:1;;-1:-1:-1;4785:1:7;;-1:-1:-1;;;4823:11:7;;-1:-1:-1;;;;;4823:11:7;;-1:-1:-1;;;;;4852:7:7;4785:1;4688:19;:222::i;:::-;4979:17;;;;4669:241;;-1:-1:-1;4942:228:7;;4979:17;;;-1:-1:-1;;;;;4979:17:7;5027:1;5014:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5112:7:7;;;;5047:1;;;;5085:9;;-1:-1:-1;;;;;5112:7:7;5047:1;4942:19;:228::i;:::-;4924:246;;5184:41;5196:8;5206;5216:1;:8;;;5184:11;:41::i;:::-;5250:8;5239:19;;5276:21;5288:8;5276:11;:21::i;:::-;5272:25;;4594:714;5329:37;5357:8;5329:27;:37::i;:::-;5318:48;-1:-1:-1;;;;;;5380:20:7;;;;;;;5376:92;;5416:41;5428:8;5438;5448:1;:8;;;5416:11;:41::i;:::-;5485:8;5478:15;;4196:1304;;;;;;;:::o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;-1:-1:-1;;;;;5207:219:11;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;-1:-1:-1;;;;;5447:25:11;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;-1:-1:-1;;;;;2812:210:11;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;-1:-1:-1;;;;;3043:19:11;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;-1:-1:-1;;;;;7821:18:11;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8013:42:11;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;-1:-1:-1;;;;;8399:23:11;;;;;;;;;;;7535:894;;;;;;;;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;492:1:24;2416:624:0;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1635:162:7:-;140:19:27;;:24;132:33;;;;;1714:14:7;1635:162;:::o;1284:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;-1:-1:-1;;;;;6684:35:11;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;-1:-1:-1;;;;;4149:32:11;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;10774:572::-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;-1:-1:-1;;;;;11219:12:11;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;11293:10:11;;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;9133:520:11:-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;-1:-1:-1;;;;;9576:34:11;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;-1:-1:-1;;;;;12371:23:11;;;12363:32;;;;;;12412:6;:15;;-1:-1:-1;;;;;12412:15:11;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;4554::12:-;4659:7;:14;4614:6;;-1:-1:-1;;;;;4648:25:12;;;4640:34;;;;;;4691:7;:17;;-1:-1:-1;;;;;4691:17:12;;;;;;;;2001:207:0;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;25364:76:7:-;25430:3;25364:76;:::o;3613:842:12:-;3857:6;3879:15;3994:9;3907:15;3924:5;3931:15;3948:10;3960:9;3971:5;3978;3897:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4006:20:12;;;;-1:-1:-1;4040:6:12;;4036:46;;;4069:2;4062:9;;;;4036:46;-1:-1:-1;4104:7:12;:14;;4129:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4129:25:12;-1:-1:-1;;;;;4129:25:12;;;;;4164:265;;4104:14;;:7;-1:-1:-1;4164:265:12;;;4104:7;4164:265;;:::i;:::-;;;;;;;;;;;;4190:229;;;;;;;;;4214:1;4190:229;;;;4233:15;4190:229;;;;4266:5;-1:-1:-1;;;;;4190:229:12;;;;;4289:15;-1:-1:-1;;;;;4190:229:12;;;;;4322:10;-1:-1:-1;;;;;4190:229:12;;;;;4350:9;-1:-1:-1;;;;;4190:229:12;;;;;4377:5;-1:-1:-1;;;;;4190:229:12;;;;;4400:5;4190:229;;;;;;;;;;4164:265;;-1:-1:-1;4164:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;;;;;;;;;;;;;;;;;;;4446:2;4439:9;;3613:842;;;;;;;;;;;;:::o;17446:534:7:-;17524:11;17699:20;17749:18;17538:37;17551:4;17557;17563:2;17567:7;17538:12;:37::i;:::-;17524:51;;17597:2;-1:-1:-1;;;;;17589:10:7;:4;-1:-1:-1;;;;;17589:10:7;;17585:47;;;17615:7;;17585:47;17645:11;;17641:48;;;17672:7;;17641:48;17722:17;17734:4;17722:11;:17::i;:::-;17699:40;;17770:15;17782:2;17770:11;:15::i;:::-;17804:12;;17749:36;;-1:-1:-1;17804:22:7;;;;17796:31;;;;;;17837:22;;;;;;;17869:20;;;;;;-1:-1:-1;;;;;17900:26:7;;;;;;;17853:6;17900:26;;;;;;;;;;;;;;17936:37;17949:5;17956:4;17962:2;17966:6;17936:12;:37::i;:::-;;17446:534;;;;;;;:::o;18963:583::-;19053:6;;;-1:-1:-1;;;;;19079:13:7;;;19075:52;;;19115:1;19108:8;;;;19075:52;19156:21;19168:8;19156:11;:21::i;:::-;19226:7;;;;19137:40;;-1:-1:-1;19215:19:7;;-1:-1:-1;;;;;19226:7:7;19215:10;:19::i;:::-;19187:47;-1:-1:-1;19276:21:7;19257:15;;;;:40;;;;;;;;;19253:86;;;19320:8;19313:15;;;;19253:86;19375:23;19356:15;;;;:42;;;;;;;;;19349:50;;;;19432:7;;;;19414:26;;-1:-1:-1;;;;;19432:7:7;19414:17;:26::i;:::-;19413:27;19409:73;;;19463:8;19456:15;;;;19409:73;19527:11;;;;19499:40;;-1:-1:-1;;;19527:11:7;;-1:-1:-1;;;;;19527:11:7;19499:27;:40::i;:::-;19492:47;;18963:583;;;;;;:::o;12650:311:11:-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;-1:-1:-1;;;;;12787:20:11;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;24597:649:7:-;24788:6;24873:145;24905:6;24925:10;;24973:8;24788:6;24873:18;:145::i;:::-;24857:161;;25096:143;25128:6;25148:8;25170:10;25194:8;25216:13;25096:18;:143::i;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;767:94:27:-;842:12;767:94;:::o;22510:1549:7:-;22681:18;22818:13;22908:16;23260:8;22846:10;-1:-1:-1;;;;;22834:22:7;:8;-1:-1:-1;;;;;22834:22:7;;:32;;22863:3;22834:32;;;22859:1;22834:32;22818:48;;;;22892:6;22876:22;;22927:21;22939:8;22927:11;:21::i;:::-;23067:7;;;;23154;;;;22908:40;;-1:-1:-1;23022:176:7;;23047:6;;-1:-1:-1;;;;;23067:7:7;;23088:10;;23112:8;;23134:6;;-1:-1:-1;;;;;23154:7:7;23175:13;23022:11;:176::i;:::-;23006:192;;23271:1;23260:12;;23255:324;23278:17;;;:24;-1:-1:-1;;;;;23274:28:7;;;23255:324;;;23339:229;23368:6;23392:1;:17;;23410:1;-1:-1:-1;;;;;23392:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23392:20:7;23430:10;23458:8;23493:1;23484:6;:10;23497:1;23484:14;23516:1;:7;;;;;;;;;;-1:-1:-1;;;;;23516:7:7;23541:13;23339:11;:229::i;:::-;23323:245;-1:-1:-1;23304:3:7;;23255:324;;;23765:17;;;;23785:1;23765:17;;;;-1:-1:-1;;;;;23765:17:7;:21;23761:292;;;23871:17;;;;23990:7;;;;23818:224;;23847:6;;23871:17;;;;-1:-1:-1;;;;;23871:17:7;;23906:10;;23934:8;;23969:3;23960:12;;;-1:-1:-1;;;;;23990:7:7;24015:13;23818:11;:224::i;:::-;23802:240;;23761:292;22510:1549;;;;;;;;;;:::o;20517:1287::-;20802:6;20727:18;;20846:19;20857:7;20846:10;:19::i;:::-;20969:12;;;;;;-1:-1:-1;20969:12:7;;;-1:-1:-1;;;;;20969:12:7;20961:26;;;;:47;;;21007:1;20991:13;:17;20961:47;20957:841;;;21161:6;21157:631;;;21199:12;;;;;;;-1:-1:-1;;;;;21199:12:7;:27;21248:7;21277:10;21309:8;21339:7;21368:5;21395:6;21199:220;;;;;;;;-1:-1:-1;;;21199:220:7;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21445:26:7;;;;21437:35;;;;;;21506:9;21490:25;;21157:631;;;21554:12;;;;;;;-1:-1:-1;;;;;21554:12:7;:26;21602:7;21631:10;21663:8;21693:7;21722:5;21749:6;21554:219;;-1:-1:-1;;;21554:219:7;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20517:1287;;;;;;;;;;;:::o;1112:24330::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1112:24330:7;;;-1:-1:-1;1112:24330:7;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1112:24330:7;;;;;-1:-1:-1;;;;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1112:24330:7;;;-1:-1:-1;1112:24330:7;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1112:24330:7;;;;;;;;;;-1:-1:-1;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "2872400", + "executionCost": "23351", + "totalCost": "2895751" + }, + "external": { + "ESCAPE_HATCH_CALLER_ROLE()": "880", + "EVMSCRIPT_REGISTRY_APP()": "991", + "EVMSCRIPT_REGISTRY_APP_ID()": "594", + "PLUGIN_MANAGER_ROLE()": "infinite", + "addDelegate(string,string,uint64,address)": "infinite", + "addGiver(address,string,string,uint64,address)": "infinite", + "addGiver(string,string,uint64,address)": "infinite", + "addProject(string,string,address,uint64,uint64,address)": "infinite", + "addValidPluginContract(bytes32)": "infinite", + "addValidPluginContracts(bytes32[])": "infinite", + "addValidPluginInstance(address)": "infinite", + "appId()": "854", + "canPerform(address,bytes32,uint256[])": "infinite", + "escapeHatch(address)": "infinite", + "escapeHatchDestination()": "1337", + "getCodeHash(address)": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "920", + "getPledge(uint64)": "infinite", + "getPledgeAdmin(uint64)": "infinite", + "getPledgeDelegate(uint64,uint64)": "infinite", + "initialize(address)": "1102", + "initialize(address,address)": "infinite", + "isProjectCanceled(uint64)": "infinite", + "isTokenEscapable(address)": "1135", + "isValidPlugin(address)": "infinite", + "kernel()": "1271", + "normalizePledge(uint64)": "infinite", + "numberOfPledgeAdmins()": "709", + "numberOfPledges()": "512", + "removeValidPluginContract(bytes32)": "infinite", + "removeValidPluginInstance(address)": "infinite", + "updateDelegate(uint64,address,string,string,uint64)": "infinite", + "updateGiver(uint64,address,string,string,uint64)": "infinite", + "updateProject(uint64,address,string,string,uint64)": "infinite", + "useWhitelist(bool)": "infinite", + "vault()": "1414", + "whitelistDisabled()": "448" + }, + "internal": { + "_appendDelegate(uint64,uint256,uint64)": "infinite", + "_callPlugin(bool,uint64,uint64,uint64,uint64,address,uint256)": "infinite", + "_callPlugins(bool,uint64,uint64,uint256)": "infinite", + "_callPluginsPledge(bool,uint64,uint64,uint64,uint256)": "infinite", + "_doTransfer(uint64,uint64,uint256)": "infinite", + "_getOldestPledgeNotCanceled(uint64)": "infinite", + "_getTime()": "14", + "_maxCommitTime(struct LiquidPledgingStorage.Pledge memory)": "infinite", + "_proposeAssignProject(uint64,uint256,uint64)": "infinite", + "_transfer(uint64,uint64,uint256,uint64)": "infinite", + "_transferOwnershipToGiver(uint64,uint256,uint64)": "infinite", + "_transferOwnershipToProject(uint64,uint256,uint64)": "infinite", + "_undelegate(uint64,uint256,uint256)": "infinite", + "checkAdminOwner(uint64)": "infinite" + } + }, + "methodIdentifiers": { + "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "PLUGIN_MANAGER_ROLE()": "24fea3b0", + "addDelegate(string,string,uint64,address)": "52dc7dcc", + "addGiver(address,string,string,uint64,address)": "6e802c6a", + "addGiver(string,string,uint64,address)": "7f61fa93", + "addProject(string,string,address,uint64,uint64,address)": "72116e92", + "addValidPluginContract(bytes32)": "c8ae070f", + "addValidPluginContracts(bytes32[])": "32ce8ebc", + "addValidPluginInstance(address)": "79f4542e", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "escapeHatch(address)": "a142d608", + "escapeHatchDestination()": "f5b61230", + "getCodeHash(address)": "81ea4408", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "getPledge(uint64)": "3f657a46", + "getPledgeAdmin(uint64)": "eba8ba06", + "getPledgeDelegate(uint64,uint64)": "2f6b64ca", + "initialize(address)": "c4d66de8", + "initialize(address,address)": "485cc955", + "isProjectCanceled(uint64)": "2101a6ad", + "isTokenEscapable(address)": "892db057", + "isValidPlugin(address)": "4eafbcd5", + "kernel()": "d4aae0c4", + "normalizePledge(uint64)": "50f8a803", + "numberOfPledgeAdmins()": "5503d9ba", + "numberOfPledges()": "2a8ec8cc", + "removeValidPluginContract(bytes32)": "b12b5f76", + "removeValidPluginInstance(address)": "6293c702", + "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", + "updateGiver(uint64,address,string,string,uint64)": "db7c2314", + "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", + "useWhitelist(bool)": "38740291", + "vault()": "fbfa77cf", + "whitelistDisabled()": "1c8e8568" + } + }, + "userdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" + }, + "addGiver(string,string,uint64,address)": { + "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" + }, + "escapeHatch(address)": { + "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" + }, + "getPledge(uint64)": { + "notice": "A getter that returns the details of the specified pledge" + }, + "getPledgeAdmin(uint64)": { + "notice": "A constant getter to check the details of a specified Admin" + }, + "getPledgeDelegate(uint64,uint64)": { + "notice": "//////////////////////////Getter to find Delegate w/ the Pledge ID & the Delegate index" + }, + "initialize(address)": { + "notice": "////////////" + }, + "isProjectCanceled(uint64)": { + "notice": "A getter to find if a specified Project has been canceled" + }, + "isTokenEscapable(address)": { + "notice": "Checks to see if `_token` is in the blacklist of tokens" + }, + "normalizePledge(uint64)": { + "notice": "Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" + }, + "numberOfPledgeAdmins()": { + "notice": "//////////////////////////A constant getter used to check how many total Admins exist" + }, + "numberOfPledges()": { + "notice": "/////////////////////////A constant getter that returns the total number of pledges" + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" + }, + "updateGiver(uint64,address,string,string,uint64)": { + "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" + }, + "updateProject(uint64,address,string,string,uint64)": { + "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" + } + } + } + } + }, + "./contracts/LiquidPledgingMock.sol": { + "LiquidPledgingMock": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "idReceiver", + "type": "uint64" + }, + { + "name": "donorAddress", + "type": "address" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "addGiverAndDonate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "whitelistDisabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "projectId", + "type": "uint64" + } + ], + "name": "isProjectCanceled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PLUGIN_MANAGER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledges", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "confirmPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "idxDelegate", + "type": "uint64" + } + ], + "name": "getPledgeDelegate", + "outputs": [ + { + "name": "idDelegate", + "type": "uint64" + }, + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHashes", + "type": "bytes32[]" + } + ], + "name": "addValidPluginContracts", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "useWhitelist", + "type": "bool" + } + ], + "name": "useWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + } + ], + "name": "getPledge", + "outputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "owner", + "type": "uint64" + }, + { + "name": "nDelegates", + "type": "uint64" + }, + { + "name": "intendedProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "oldPledge", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "pledgeState", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idSender", + "type": "uint64" + }, + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "idReceiver", + "type": "uint64" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vault", + "type": "address" + }, + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idGiver", + "type": "uint64" + }, + { + "name": "idReceiver", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "donate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "isValidPlugin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + } + ], + "name": "normalizePledge", + "outputs": [ + { + "name": "", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addDelegate", + "outputs": [ + { + "name": "idDelegate", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledgeAdmins", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgesAmounts", + "type": "uint256[]" + } + ], + "name": "mWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "removeValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idReceiver", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "addGiverAndDonate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "projectAdmin", + "type": "address" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addProject", + "outputs": [ + { + "name": "idProject", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idProject", + "type": "uint64" + } + ], + "name": "cancelProject", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "addValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getCodeHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "isTokenEscapable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgesAmounts", + "type": "uint256[]" + } + ], + "name": "mConfirmPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "mock_time", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "escapeHatch", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_t", + "type": "uint256" + } + ], + "name": "setMockedTime", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "cancelPledge", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ESCAPE_HATCH_CALLER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "removeValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "addValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idDelegate", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateDelegate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledges", + "type": "uint64[]" + } + ], + "name": "mNormalizePledge", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idSender", + "type": "uint64" + }, + { + "name": "pledgesAmounts", + "type": "uint256[]" + }, + { + "name": "idReceiver", + "type": "uint64" + } + ], + "name": "mTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idGiver", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateGiver", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "cancelPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idAdmin", + "type": "uint64" + } + ], + "name": "getPledgeAdmin", + "outputs": [ + { + "name": "adminType", + "type": "uint8" + }, + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "canceled", + "type": "bool" + }, + { + "name": "plugin", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgesAmounts", + "type": "uint256[]" + } + ], + "name": "mCancelPayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "escapeHatchDestination", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idProject", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateProject", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vault", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "uint256" + }, + { + "indexed": true, + "name": "to", + "type": "uint256" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint256" + } + ], + "name": "CancelProject", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + } + ], + "name": "EscapeHatchBlackistedToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "EscapeHatchCalled", + "type": "event" + } + ], + "devdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "name": "The name used to identify the Delegate", + "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Delegate's profile often an IPFS hash" + }, + "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" + }, + "addGiver(string,string,uint64,address)": { + "params": { + "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "name": "The name used to identify the Giver", + "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Giver's profile often an IPFS hash" + }, + "return": "idGiver The id number used to reference this Admin" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", + "name": "The name used to identify the Project", + "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", + "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", + "projectAdmin": "The address for the trusted project manager", + "url": "The link to the Project's profile often an IPFS hash" + }, + "return": "idProject The id number used to reference this Admin" + }, + "cancelPayment(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be canceled", + "idPledge": "Id of the pledge that's withdraw is to be canceled" + } + }, + "cancelPledge(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be transfered to the `oldPledge`", + "idPledge": "Id of the pledge that is to be canceled" + } + }, + "cancelProject(uint64)": { + "params": { + "idProject": "Id of the project that is to be canceled" + } + }, + "confirmPayment(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be withdrawn", + "idPledge": "Id of the pledge that is to be withdrawn" + } + }, + "donate(uint64,uint64,address,uint256)": { + "params": { + "idGiver": "The id of the Giver donating; if 0, a new id is created", + "idReceiver": "The Admin receiving the donation; can be any Admin: the Giver themselves, another Giver, a Delegate or a Project" + } + }, + "escapeHatch(address)": { + "params": { + "_token": "to transfer, use 0x0 for ether" + } + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "getPledge(uint64)": { + "params": { + "idPledge": "the id number of the pledge being queried" + }, + "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" + }, + "getPledgeAdmin(uint64)": { + "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" + }, + "getPledgeDelegate(uint64,uint64)": { + "params": { + "idPledge": "The id number representing the pledge being queried", + "idxDelegate": "The index number for the delegate in this Pledge " + } + }, + "initialize(address,address)": { + "details": "`LiquidPledgingMock` creates a standard `LiquidPledging` instance and sets the mocked time to the current blocktime." + }, + "isProjectCanceled(uint64)": { + "params": { + "projectId": "The Admin id number used to specify the Project" + }, + "return": "True if the Project has been canceled" + }, + "isTokenEscapable(address)": { + "params": { + "_token": "the token address being queried" + }, + "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" + }, + "mCancelPayment(uint256[])": { + "params": { + "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" + } + }, + "mConfirmPayment(uint256[])": { + "params": { + "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" + } + }, + "mNormalizePledge(uint64[])": { + "params": { + "pledges": "An array of pledge IDs" + } + }, + "mTransfer(uint64,uint256[],uint64)": { + "params": { + "idReceiver": "Destination of the `pledesAmounts`, can be a Giver or Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", + "idSender": "Id of the Admin that is transferring the amounts from all the Pledges; this admin must have permissions to move the value", + "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" + } + }, + "mWithdraw(uint256[])": { + "params": { + "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" + } + }, + "normalizePledge(uint64)": { + "params": { + "idPledge": "This is the id of the pledge that will be normalized" + }, + "return": "The normalized Pledge!" + }, + "numberOfPledgeAdmins()": { + "return": "The total number of admins (Givers, Delegates and Projects) ." + }, + "numberOfPledges()": { + "return": "The total number of Pledges in the system" + }, + "setMockedTime(uint256)": { + "details": "`setMockedTime` is a basic setter function for the mock_time parameter", + "params": { + "_t": "This is the value to which the mocked time will be set." + } + }, + "transfer(uint64,uint64,uint256,uint64)": { + "params": { + "amount": "Quantity of ETH (in wei) that this pledge is transferring the authority to withdraw from the vault", + "idPledge": "Id of the pledge that's moving the value", + "idReceiver": "Destination of the `amount`, can be a Giver/Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", + "idSender": "Id of the Admin that is transferring the amount from Pledge to Pledge; this admin must have permissions to move the value" + } + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "params": { + "idDelegate": "The Admin id number used to specify the Delegate", + "newAddr": "The new address that represents this Delegate", + "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "newName": "The new name used to identify the Delegate", + "newUrl": "The new link to the Delegate's profile often an IPFS hash" + } + }, + "updateGiver(uint64,address,string,string,uint64)": { + "params": { + "idGiver": "This is the Admin id number used to specify the Giver", + "newAddr": "The new address that represents this Giver", + "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "newName": "The new name used to identify the Giver", + "newUrl": "The new link to the Giver's profile often an IPFS hash" + } + }, + "updateProject(uint64,address,string,string,uint64)": { + "params": { + "idProject": "The Admin id number used to specify the Project", + "newAddr": "The new address that represents this Project", + "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", + "newName": "The new name used to identify the Project", + "newUrl": "The new link to the Project's profile often an IPFS hash" + } + }, + "withdraw(uint64,uint256)": { + "params": { + "amount": "Quantity of ether (in wei) to be authorized", + "idPledge": "Id of the pledge that is to be redeemed into ether" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052607f805460ff19169055341561001957600080fd5b6155a0806100286000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029", + "sourceMap": "1086:825:8:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1086:825:8;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029", + "sourceMap": "1086:825:8:-;;;;;;;;;-1:-1:-1;;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1339:359:5;;;;;;;;;;-1:-1:-1;;;;;1339:359:5;;;-1:-1:-1;;;;;1339:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;-1:-1:-1;;;;;11553:482:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;5348:455:5;;;;;;;;;;-1:-1:-1;;;;;5348:455:5;;;;;;;2790:397:7;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226:9;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;1903:611:12;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687:5;;;;;;;;;;-1:-1:-1;;;;;4415:687:5;;;;;;;3857:235;;;;;;;;;;-1:-1:-1;;;;;3857:235:5;;;;;;;;;;;;;;;;;;1306:176:8;;;;;;;;;;-1:-1:-1;;;;;1306:176:8;;;;;;;;;;2273:927:5;;;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;2126:450:9;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4196:1304:7;;;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;;;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;-1:-1:-1;;;;;4897:582:11;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;9903:103;;;;;;;;;;;;9383:287:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9383:287:5;;-1:-1:-1;9383:287:5;;-1:-1:-1;;;;;;9383:287:5;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;1167:166:5;;;;;;;;;;-1:-1:-1;;;;;1167:166:5;;;-1:-1:-1;;;;;1167:166:5;;;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;-1:-1:-1;;;;;2463:606:11;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;-1:-1:-1;;;;;7535:894:11;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;6799:220:5;;;;;;;;;;-1:-1:-1;;;;;6799:220:5;;;;;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;-1:-1:-1;;;;;2051:311:11;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;269:107:27;;;;;;;;;;;;9894:299:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9894:299:5;;-1:-1:-1;9894:299:5;;-1:-1:-1;;;;;;9894:299:5;158:103:31;;;;;;;;;;;;1139:21:8;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1839:70:8;;;;;;;;;;;;;;7320:352:5;;;;;;;;;;-1:-1:-1;;;;;7320:352:5;;;;;;;1330:88:0;;;;;;;;;;;;1670:174:9;;;;;;;;;;;;;;1635:162:7;;;;;;;;;;-1:-1:-1;;;;;1635:162:7;;;;;1284:148:9;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;-1:-1:-1;;;;;6233:531:11;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;10865:164:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10865:164:5;;-1:-1:-1;10865:164:5;;-1:-1:-1;;;;;;10865:164:5;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;8680:380:5;;;;;;;;;;;;;-1:-1:-1;;;;;8680:380:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8680:380:5;;-1:-1:-1;;;8680:380:5;;-1:-1:-1;;;;;8680:380:5;;-1:-1:-1;8680:380:5;;-1:-1:-1;;8680:380:5;3709:511:11;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;-1:-1:-1;;;;;3709:511:11;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;6066:581:5;;;;;;;;;;-1:-1:-1;;;;;6066:581:5;;;;;;;10774:572:11;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10415:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10415:297:5;;-1:-1:-1;10415:297:5;;-1:-1:-1;;;;;;10415:297:5;1536:37:0;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;-1:-1:-1;;;;;9133:520:11;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;1339:359:5;1558:14;-1:-1:-1;;;;;1472:17:5;;;;1464:26;;;;;;1575:64;1584:12;1575:64;;;;;;;;;;;;;;;;;;;;;;;;;1606:6;;1575:8;:64::i;:::-;1558:81;;1649:42;1656:7;1665:10;1677:5;1684:6;1649;:42::i;:::-;1339:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;-1:-1:-1;;;11857:10:11;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;-1:-1:-1;;;;;11918:15:11;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;-1:-1:-1;;;;;12012:15:11;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;;:::o;5348:455:5:-;1556:5:7;;5429:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;5448:21:5;5460:8;5448:11;:21::i;:::-;5429:40;-1:-1:-1;5505:18:5;5488:13;;;;-1:-1:-1;;;5488:13:5;;;;:35;;;;;;;;;5480:44;;;;;;5589:7;;;;;5610:17;;5556:187;;;;-1:-1:-1;;;;;5589:7:5;;5610:17;5556:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5556:187:5;-1:-1:-1;;;;;5556:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5671:11:5;;;;;5696:7;;;;5641:1;;-1:-1:-1;5641:1:5;;-1:-1:-1;;;5671:11:5;;;-1:-1:-1;;;;;5671:11:5;;-1:-1:-1;;;;;5696:7:5;;;;5556:19;:187::i;:::-;5535:208;;5754:42;5766:8;5776:11;5789:6;5754:11;:42::i;:::-;5348:455;;;;:::o;2790:397:7:-;2883:17;2910:12;2932:11;;:::i;:::-;2960:16;3067:28;2979:21;2991:8;2979:11;:21::i;:::-;2960:40;;3023:1;:17;;3055:1;3041:11;:15;-1:-1:-1;;;;;3023:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3023:34:7;3010:47;;3098:22;3109:10;3098;:22::i;:::-;3067:53;;3137:8;:13;;;;;;;;;;-1:-1:-1;;;;;3137:13:7;3130:20;;3167:8;:13;;3160:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:397;;;;;;;:::o;1438:226:9:-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;1994:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;1903:611:12:-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;4415:687:5:-;4551:16;4691:18;4965:25;4491;4507:8;4491:15;:25::i;:::-;4480:36;;4570:21;4582:8;4570:11;:21::i;:::-;4551:40;-1:-1:-1;4626:19:5;4609:13;;;;-1:-1:-1;;;4609:13:5;;;;:36;;;;;;;;;4601:45;;;;;;4672:7;;;;4656:24;;-1:-1:-1;;;;;4672:7:5;4656:15;:24::i;:::-;4745:7;;;;;4766:17;;4712:189;;;;-1:-1:-1;;;;;4745:7:5;;4766:17;4712:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4712:189:5;-1:-1:-1;;;;;4712:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4827:11:5;;;;4852:7;;;;4797:1;;-1:-1:-1;4797:1:5;;-1:-1:-1;;;4827:11:5;;-1:-1:-1;;;;;4827:11:5;;-1:-1:-1;;;;;4852:7:5;;4712:19;:189::i;:::-;4691:210;;4912:42;4924:8;4934:11;4947:6;4912:11;:42::i;:::-;5004:7;;;;4993:19;;-1:-1:-1;;;;;5004:7:5;4993:10;:19::i;:::-;5022:5;;5067:10;;5079:7;;;;4965:47;;-1:-1:-1;;;;;;5022:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5045:20:5;;;5067:10;;;;5079:7;5088:6;5022:73;;-1:-1:-1;;;5022:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5022:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687;;;;;:::o;3857:235::-;4001:25;4017:8;4001:15;:25::i;:::-;4036:49;4046:8;4056;4066:6;4074:10;4036:9;:49::i;1306:176:8:-;140:19:27;;:24;132:33;;;;;;1401:49:8;1418:6;1426:23;1401:16;:49::i;:::-;-1:-1:-1;;1472:3:8;1460:9;:15;1306:176::o;2273:927:5:-;2537:26;;;-1:-1:-1;;;;;2389:11:5;;;;;2381:20;;;;;;2493:1;2484:10;;2476:19;;;;;;-1:-1:-1;;;;;2513:12:5;;;;2505:21;;;;;;2566:19;2577:7;2566:10;:19::i;:::-;2537:48;-1:-1:-1;2623:21:5;2603:16;;;;:41;;;;;;;;;2595:50;;;;;;2710:5;;-1:-1:-1;;;;;2664:25:5;;;;;;2690:10;;2710:5;;;;2718:6;2664:61;;;;;;;;-1:-1:-1;;;2664:61:5;;;;;;-1:-1:-1;;;;;2664:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2656:70;;;;;;;;2792:219;2825:7;2859:1;2846:15;;;;;;;;;;;;;;;;;;;;;;;;2918:1;2933;2948;2963:5;2982:19;2792;:219::i;:::-;2774:237;;3043:21;3055:8;3043:11;:21::i;:::-;3074:20;;;;;;3022:42;-1:-1:-1;;;;;;3105:29:5;;3074:10;3105:29;3088:6;3105:29;;;;;;;;;;;;;;3145:48;3155:7;3164:8;3174:6;3182:10;3145:9;:48::i;:::-;2273:927;;;;;;;:::o;2126:450:9:-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4196:1304:7:-;4253:6;4271:16;4669;4924:15;4290:21;4302:8;4290:11;:21::i;:::-;4271:40;-1:-1:-1;4457:19:7;4440:13;;;;-1:-1:-1;;;4440:13:7;;;;:36;;;;;;;;;4436:82;;4499:8;4492:15;;;;4436:82;4599:17;;;;4619:1;-1:-1:-1;;;4599:17:7;;;-1:-1:-1;;;;;4599:17:7;:21;4598:55;;;;-1:-1:-1;4640:12:7;;;;-1:-1:-1;;;4640:12:7;;-1:-1:-1;;;;;4640:12:7;4627:10;:8;:10::i;:::-;:25;4598:55;4594:714;;;4725:7;;;;;4750:17;;4688:222;;;;-1:-1:-1;;;;;4725:7:7;;4750:17;4688:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4688:222:7;-1:-1:-1;;;;;4688:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4823:11:7;;;;4852:7;;;;4785:1;;-1:-1:-1;4785:1:7;;-1:-1:-1;;;4823:11:7;;-1:-1:-1;;;;;4823:11:7;;-1:-1:-1;;;;;4852:7:7;4785:1;4688:19;:222::i;:::-;4979:17;;;;4669:241;;-1:-1:-1;4942:228:7;;-1:-1:-1;;;4979:17:7;;-1:-1:-1;;;;;4979:17:7;5027:1;5014:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5112:7:7;;;;5047:1;;;;5085:9;;-1:-1:-1;;;;;5112:7:7;5047:1;4942:19;:228::i;:::-;4924:246;;5184:41;5196:8;5206;5216:1;:8;;;5184:11;:41::i;:::-;5250:8;5239:19;;5276:21;5288:8;5276:11;:21::i;:::-;5272:25;;4594:714;5329:37;5357:8;5329:27;:37::i;:::-;5318:48;-1:-1:-1;;;;;;5380:20:7;;;;;;;5376:92;;5416:41;5428:8;5438;5448:1;:8;;;5416:11;:41::i;:::-;5485:8;5478:15;;4196:1304;;;;;;;:::o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;-1:-1:-1;;;;;5207:219:11;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;-1:-1:-1;;;;;5447:25:11;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;:::o;9383:287:5:-;9447:6;;;9442:222;9463:14;:21;9459:1;:25;9442:222;;;-1:-1:-1;;;;;9532:14:5;9547:1;9532:14;:17;;;;;;;;;;;;;;;:27;9506:55;;-1:-1:-1;;;9589:14:5;9604:1;9589:17;;;;;;;;;;;;;;;;:23;;;;;;;;9575:37;;9627:26;9636:8;9646:6;9627:8;:26::i;:::-;9486:3;;;;;9442:222;;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;1167:166:5:-;1270:56;1288:10;1300;1312:5;1319:6;1270:17;:56::i;:::-;1167:166;;;:::o;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;-1:-1:-1;;;;;2812:210:11;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;-1:-1:-1;;;;;3043:19:11;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;-1:-1:-1;;;;;7821:18:11;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8013:42:11;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;-1:-1:-1;;;;;8399:23:11;;;;;;;;;;;7535:894;;;;;;;;;:::o;6799:220:5:-;6857:27;6887:21;6898:9;6887:10;:21::i;:::-;6857:51;;6918:26;6934:9;6918:15;:26::i;:::-;6973:4;6954:16;;:23;;-1:-1:-1;;6954:23:5;-1:-1:-1;;;6954:23:5;;;-1:-1:-1;;;;;6988:24:5;;;;;;;;;;;;6799:220;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;9894:299:5:-;9964:6;;;9959:228;9980:14;:21;9976:1;:25;9959:228;;;-1:-1:-1;;;;;10049:14:5;10064:1;10049:14;:17;;;;;;;;;;;;;;;:27;10023:55;;-1:-1:-1;;;10106:14:5;10121:1;10106:17;;;;;;;;;;;;;;;;:23;;;;;;;;10092:37;;10144:32;10159:8;10169:6;10144:14;:32::i;:::-;10003:3;;;;;9959:228;;158:103:31;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;1139:21:8:-;;;;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;2416:624;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1839:70:8:-;1888:9;:14;1839:70::o;7320:352:5:-;7436:16;7556;7400:25;7416:8;7400:15;:25::i;:::-;7389:36;;7455:21;7467:8;7455:11;:21::i;:::-;7494:11;;;;;;-1:-1:-1;;;;7494:11:5;;-1:-1:-1;;;;;7494:11:5;:16;;7486:25;;;;;;7537:7;;;;7521:24;;-1:-1:-1;;;;;7537:7:5;7521:15;:24::i;:::-;7603:11;;;;7575:40;;-1:-1:-1;;;7603:11:5;;-1:-1:-1;;;;;7603:11:5;7575:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1635:162:7:-;140:19:27;;:24;132:33;;;;;1714:14:7;1635:162;:::o;1284:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;-1:-1:-1;;;;;6684:35:11;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;10865:164:5:-;10931:6;10926:97;10947:7;:14;10943:1;:18;10926:97;;;10983:29;11000:7;11008:1;11000:10;;;;;;;;;;;;;;;;10983:15;:29::i;:::-;-1:-1:-1;10963:3:5;;10926:97;;;10865:164;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;8680:380:5:-;8815:6;;;8810:244;8831:14;:21;8827:1;:25;8810:244;;;-1:-1:-1;;;;;8900:14:5;8915:1;8900:14;:17;;;;;;;;;;;;;;;:27;8874:55;;-1:-1:-1;;;8957:14:5;8972:1;8957:17;;;;;;;;;;;;;;;;:23;;;;;;;;8943:37;;8995:48;9004:8;9014;9024:6;9032:10;8995:8;:48::i;:::-;8854:3;;;;;8810:244;;;8680:380;;;;;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;-1:-1:-1;;;;;4149:32:11;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;6066:581:5:-;1556:5:7;;6146:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;6165:21:5;6177:8;6165:11;:21::i;:::-;6146:40;-1:-1:-1;6222:18:5;6205:13;;;;-1:-1:-1;;;6205:13:5;;;;:35;;;;;;;;;6197:44;;;;;;6377:7;;;;;6398:17;;6344:190;;;;-1:-1:-1;;;;;6377:7:5;;6398:17;6344:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6344:190:5;-1:-1:-1;;;;;6344:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6459:11:5;;;;6484:7;;;;6429:1;;-1:-1:-1;6429:1:5;;-1:-1:-1;;;6459:11:5;;-1:-1:-1;;;;;6459:11:5;;-1:-1:-1;;;;;6484:7:5;6429:1;6344:19;:190::i;:::-;6323:211;;6559:28;6575:11;6559:15;:28::i;10774:572:11:-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;-1:-1:-1;;;;;11219:12:11;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;;;;11293:10:11;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;10415:297:5:-;10484:6;;;10479:227;10500:14;:21;10496:1;:25;10479:227;;;-1:-1:-1;;;;;10569:14:5;10584:1;10569:14;:17;;;;;;;;;;;;;;;:27;10543:55;;-1:-1:-1;;;10626:14:5;10641:1;10626:17;;;;;;;;;;;;;;;;:23;;;;;;;;10612:37;;10664:31;10678:8;10688:6;10664:13;:31::i;:::-;10523:3;;;;;10479:227;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9133:520:11:-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;-1:-1:-1;;;;;9576:34:11;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;-1:-1:-1;;;;;12371:23:11;;;12363:32;;;;;;12412:6;:15;;-1:-1:-1;;;;;12412:15:11;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;4554::12:-;4659:7;:14;4614:6;;-1:-1:-1;;;;;4648:25:12;;;4640:34;;;;;;4691:7;:17;;-1:-1:-1;;;;;4691:17:12;;;;;;;;3613:842;3857:6;3879:15;3994:9;3907:15;3924:5;3931:15;3948:10;3960:9;3971:5;3978;3897:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4006:20:12;;;;-1:-1:-1;4040:6:12;;4036:46;;;4069:2;4062:9;;;;4036:46;-1:-1:-1;4104:7:12;:14;;4129:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4129:25:12;-1:-1:-1;;;;;4129:25:12;;;;;4164:265;;4104:14;;:7;-1:-1:-1;4164:265:12;;;4104:7;4164:265;;:::i;:::-;;;;;;;;;;;;4190:229;;;;;;;;;4214:1;4190:229;;;;4233:15;4190:229;;;;4266:5;-1:-1:-1;;;;;4190:229:12;;;;;4289:15;-1:-1:-1;;;;;4190:229:12;;;;;4322:10;-1:-1:-1;;;;;4190:229:12;;;;;4350:9;-1:-1:-1;;;;;4190:229:12;;;;;4377:5;-1:-1:-1;;;;;4190:229:12;;;;;4400:5;4190:229;;;;;;;;;;4164:265;;-1:-1:-1;4164:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;4164:265:12;;;;;;;;;;;;;;;;;4446:2;4439:9;;3613:842;;;;;;;;;;;;:::o;17446:534:7:-;17524:11;17699:20;17749:18;17538:37;17551:4;17557;17563:2;17567:7;17538:12;:37::i;:::-;17524:51;;17597:2;-1:-1:-1;;;;;17589:10:7;:4;-1:-1:-1;;;;;17589:10:7;;17585:47;;;17615:7;;17585:47;17645:11;;17641:48;;;17672:7;;17641:48;17722:17;17734:4;17722:11;:17::i;:::-;17699:40;;17770:15;17782:2;17770:11;:15::i;:::-;17804:12;;17749:36;;-1:-1:-1;17804:22:7;;;;17796:31;;;;;;17837:22;;;;;;;17869:20;;;;;;-1:-1:-1;;;;;17900:26:7;;;;;;;17853:6;17900:26;;;;;;;;;;;;;;17936:37;17949:5;17956:4;17962:2;17966:6;17936:12;:37::i;5741:193::-;5810:21;5834:19;5845:7;5834:10;:19::i;:::-;5893:8;;;;5810:43;;-1:-1:-1;5871:10:7;-1:-1:-1;;;;;5871:31:7;;;5893:8;;;;;5871:31;;:55;;-1:-1:-1;5920:6:7;;5906:10;-1:-1:-1;;;;;5906:20:7;;;5920:6;;;;;5906:20;5871:55;5863:64;;;;;;;5940:5495;6192:16;;;;;;-1:-1:-1;;;;;6095:14:7;;;;;6087:23;;;;;;6156:25;6172:8;6156:15;:25::i;:::-;6145:36;;6211:21;6223:8;6211:11;:21::i;:::-;6192:40;;6273:22;6284:10;6273;:22::i;:::-;6242:53;-1:-1:-1;6331:19:7;6314:13;;;;-1:-1:-1;;;6314:13:7;;;;:36;;;;;;;;;6306:45;;;;;;6418:7;;;;-1:-1:-1;;;;;6418:19:7;;;:7;;:19;6414:2102;;;6480:21;6458:18;;;;:43;;;;;;;;;6454:2032;;;6521:55;6547:8;6557:6;6565:10;6521:25;:55::i;:::-;6454:2032;;;6623:23;6601:18;;;;:45;;;;;;;;;6597:1889;;;6666:57;6694:8;6704:6;6712:10;6666:27;:57::i;6597:1889::-;6770:24;6748:18;;;;:46;;;;;;;;;6744:1742;;;6835:30;6851:1;6835:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;-1:-1:-1;;6835:30:7;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6854:10:7;6835:15;:30::i;:::-;6887:17;;;;-1:-1:-1;;;;;6815:50:7;;;;-1:-1:-1;6907:1:7;-1:-1:-1;;;6887:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6912:24:7;;;6887:49;6883:1389;;;7251:1;7224:17;;:24;-1:-1:-1;;7224:28:7;7208:44;;7204:604;;;7347:7;;;;;7384:17;;7298:293;;;;-1:-1:-1;;;;;7347:7:7;;7384:17;7298:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7298:293:7;-1:-1:-1;;;;;7298:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7493:11:7;;;;7534:7;;;;7431:1;;-1:-1:-1;7431:1:7;;-1:-1:-1;;;7493:11:7;;-1:-1:-1;;;;;7493:11:7;;-1:-1:-1;;;;;7534:7:7;7431:1;7298:19;:293::i;:::-;7280:311;;7617:39;7629:8;7639;7649:6;7617:11;:39::i;:::-;7204:604;;;7711:74;7723:8;7733:6;7783:1;7768:12;7741:1;:17;;:24;;;;:39;:43;7711:11;:74::i;:::-;;7204:604;6883:1389;;;8037:149;8074:8;8108:6;8140:1;:17;;:24;;;;8037:11;:149::i;:::-;8026:160;;8208:45;8224:8;8234:6;8242:10;8208:15;:45::i;6744:1742::-;8458:13;;8499:7;;6414:2102;8583:28;8599:1;8583:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;-1:-1:-1;;8583:28:7;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8602:8:7;8583:15;:28::i;:::-;-1:-1:-1;;;;;8565:46:7;;;;-1:-1:-1;8625:22:7;;8621:2735;;8739:21;8717:18;;;;:43;;;;;;;;;8713:274;;;8853:7;;;;-1:-1:-1;;;;;8853:21:7;;;:7;;:21;8846:29;;;;8893:55;8905:8;8915:6;8923:1;:17;;:24;;;;8893:11;:55::i;:::-;;8966:7;;8713:274;9079:24;9057:18;;;;:46;;;;;;;;;9053:1785;;;9143:30;9159:1;9143:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;-1:-1:-1;;;9143:30:7;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9123:50:7;;;;-1:-1:-1;9246:24:7;;9242:1558;;;9305:166;9342:8;9376:6;9448:1;9435:10;9408:1;:17;;:24;;;;:37;:41;9305:11;:166::i;9242:1558::-;9823:10;9808:12;:25;9804:996;;;9868:166;9905:8;9939:6;10011:1;9998:10;9971:1;:17;;:24;;;;:37;:41;9868:11;:166::i;9804:996::-;10361:26;;;10357:443;;10613:168;10650:8;10684:6;10758:1;10743:12;10716:1;:17;;:24;;;;:39;:43;10613:11;:168::i;9053:1785::-;11034:23;11012:18;;;;:45;;;;;;;;;11008:338;;;11088:150;11121:8;11151:6;11219:1;11206:10;11179:1;:17;;:24;;;;:37;:41;11088:11;:150::i;:::-;11077:161;;11256:51;11278:8;11288:6;11296:10;11256:21;:51::i;11365:13::-;5940:5495;;;;;;;;;;:::o;2143:319::-;140:19:27;;:24;132:33;;;;;;2238:41:7;2255:23;2238:16;:41::i;:::-;-1:-1:-1;;;;;2297:13:7;;;;2289:22;;;;;;2322:5;:24;;-1:-1:-1;;;;;;2322:24:7;;-1:-1:-1;;;;;2322:24:7;;;;;;-1:-1:-1;2357:17:7;:6;-1:-1:-1;2357:17:7;:::i;:::-;-1:-1:-1;2427:1:7;2410:18;:7;2427:1;2410:18;:::i;1575:82:8:-;1641:9;;1575:82;:::o;18963:583:7:-;19053:6;;;-1:-1:-1;;;;;19079:13:7;;;19075:52;;;19115:1;19108:8;;;;19075:52;19156:21;19168:8;19156:11;:21::i;:::-;19226:7;;;;19137:40;;-1:-1:-1;19215:19:7;;-1:-1:-1;;;;;19226:7:7;19215:10;:19::i;:::-;19187:47;-1:-1:-1;19276:21:7;19257:15;;;;:40;;;;;;;;;19253:86;;;19320:8;19313:15;;;;19253:86;19375:23;19356:15;;;;:42;;;;;;;;;19349:50;;;;19432:7;;;;19414:26;;-1:-1:-1;;;;;19432:7:7;19414:17;:26::i;:::-;19413:27;19409:73;;;19463:8;19456:15;;;;19409:73;19527:11;;;;19499:40;;-1:-1:-1;;;19527:11:7;;-1:-1:-1;;;;;19527:11:7;19499:27;:40::i;:::-;19492:47;;18963:583;;;;;;:::o;12650:311:11:-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;-1:-1:-1;;;;;12787:20:11;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;24597:649:7:-;24788:6;24873:145;24905:6;24925:10;;24973:8;24788:6;24873:18;:145::i;:::-;24857:161;;25096:143;25128:6;25148:8;25170:10;25194:8;25216:13;25096:18;:143::i;13269:444::-;13407:16;13458:15;13426:21;13438:8;13426:11;:21::i;:::-;13407:40;;13476:181;13509:10;13546:1;13533:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13607:7:7;;;;13562:1;;;;;;-1:-1:-1;;;;;13607:7:7;13562:1;13476:19;:181::i;:::-;13458:199;;13667:39;13679:8;13689;13699:6;13667:11;:39::i;11870:989::-;12010:16;12291;12510:15;12029:21;12041:8;12029:11;:21::i;:::-;12010:40;;1143:2:11;12187:18:7;12203:1;12187:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;-1:-1:-1;;12187:18:7;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12187:15:7;:18::i;:::-;:43;12179:52;;;;;;12250:29;12268:10;12250:17;:29::i;:::-;12249:30;12241:39;;;;;;12343:7;;;;;12364:17;;12310:190;;;;-1:-1:-1;;;;;12343:7:7;;12364:17;12310:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12310:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12425:11:7;;;;12450:7;;;;12395:1;;-1:-1:-1;12395:1:7;;-1:-1:-1;;;;12425:11:7;;;-1:-1:-1;;;;;12425:11:7;;-1:-1:-1;;;;;12450:7:7;12395:1;12310:19;:190::i;:::-;12291:209;;12528:275;12561:10;12639:1;12626:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12753:7:7;;;;12700:1;;;;12730:9;;-1:-1:-1;;;;;12753:7:7;12700:1;12528:19;:275::i;:::-;12510:293;;12813:39;12825:8;12835;12845:6;12813:11;:39::i;5220:290:12:-;5296:6;;5314:165;5335:1;:17;;;:24;5331:1;:28;5314:165;;;5408:10;-1:-1:-1;;;;;5384:34:12;:1;:17;;;5402:1;5384:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5384:34:12;;5380:89;;;5452:1;5438:16;;;;5380:89;5361:3;;5314:165;;;-1:-1:-1;;;;;5488:15:12;;5220:290;;;;;;:::o;15365:692:7:-;15472:15;15503:16;15553:34;;:::i;:::-;15670:6;15522:21;15534:8;15522:11;:21::i;:::-;15616:17;;;:24;15503:40;;-1:-1:-1;15616:28:7;;;15590:64;;;;;;;;;;;;;;;;;;;;;;;;15553:101;;15679:1;15670:10;;15665:125;15686:17;;;:24;:28;;;15682:32;;15665:125;;;15759:17;;;:20;;15777:1;;15759:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15759:20:7;15735:18;15754:1;15735:21;;;;;;;;-1:-1:-1;;;;;15735:44:7;;;:21;;;;;;;;;;:44;15716:3;;15665:125;;;15843:7;;;;15951;;;;15810:191;;-1:-1:-1;;;;;15843:7:7;;;;15864:18;;15843:7;;;;-1:-1:-1;;;15926:11:7;;;;;-1:-1:-1;;;;;15951:7:7;15843;15810:19;:191::i;:::-;15799:202;;16011:39;16023:8;16033;16043:6;16011:11;:39::i;:::-;15365:692;;;;;;;;:::o;14071:871::-;14199:16;14309:34;;:::i;:::-;14425:6;14677:15;14218:21;14230:8;14218:11;:21::i;:::-;14258:17;;;:24;14199:40;;-1:-1:-1;1085:2:12;14258:40:7;;14250:49;;;;;;14372:17;;;;:24;:28;14346:64;;;;;;;;;;;;;;;;;;;;;;;;14309:101;;14434:1;14425:10;;14420:121;14441:17;;;:24;14437:28;;14420:121;;;14510:17;;;:20;;14528:1;;14510:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14510:20:7;14486:18;14505:1;14486:21;;;;;;;;-1:-1:-1;;;;;14486:44:7;;;:21;;;;;;;;;;:44;14467:3;;;;;14420:121;;;14628:17;;;:24;14656:10;;14609:18;;;:44;;;;;;;-1:-1:-1;;;;;14609:57:7;;;:44;;;;;;;;:57;14728:7;;;;14836;;;;14695:191;;14728:7;;;;14749:18;;14728:7;;;;-1:-1:-1;;;14811:11:7;;;;-1:-1:-1;;;;;14836:7:7;14728;14695:19;:191::i;:::-;14677:209;;14896:39;14908:8;14918;14928:6;14896:11;:39::i;16483:607::-;16617:16;16780:15;16636:21;16648:8;16636:11;:21::i;:::-;16617:40;;1143:2:11;16676:18:7;16692:1;16676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;-1:-1:-1;;;16676:18:7;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;:43;16668:52;;;;;;16739:29;16757:10;16739:17;:29::i;:::-;16738:30;16730:39;;;;;;16831:7;;;;;16852:17;;16798:236;;;;-1:-1:-1;;;;;16831:7:7;;16852:17;16798:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16798:236:7;-1:-1:-1;;;;;16798:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16883:10;16927:17;16942:1;16927:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;-1:-1:-1;;16927:17:7;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16927:14:7;:17::i;:::-;-1:-1:-1;;;;;16914:30:7;:10;:8;:10::i;:::-;16959:11;;;;16984:7;;;;16914:30;;;;;-1:-1:-1;;;16959:11:7;;-1:-1:-1;;;;;16959:11:7;;-1:-1:-1;;;;;16984:7:7;;16798:19;:236::i;2001:207:0:-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;22510:1549:7:-;22681:18;22818:13;22908:16;23260:8;22846:10;-1:-1:-1;;;;;22834:22:7;:8;-1:-1:-1;;;;;22834:22:7;;:32;;22863:3;22834:32;;;22859:1;22834:32;22818:48;;;;22892:6;22876:22;;22927:21;22939:8;22927:11;:21::i;:::-;23067:7;;;;23154;;;;22908:40;;-1:-1:-1;23022:176:7;;23047:6;;-1:-1:-1;;;;;23067:7:7;;23088:10;;23112:8;;23134:6;;-1:-1:-1;;;;;23154:7:7;23175:13;23022:11;:176::i;:::-;23006:192;;23271:1;23260:12;;23255:324;23278:17;;;:24;-1:-1:-1;;;;;23274:28:7;;;23255:324;;;23339:229;23368:6;23392:1;:17;;23410:1;-1:-1:-1;;;;;23392:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23392:20:7;23430:10;23458:8;23493:1;23484:6;:10;23497:1;23484:14;23516:1;:7;;;;;;;;;;-1:-1:-1;;;;;23516:7:7;23541:13;23339:11;:229::i;:::-;23323:245;-1:-1:-1;23304:3:7;;23255:324;;;23765:17;;;;23785:1;-1:-1:-1;;;23765:17:7;;;-1:-1:-1;;;;;23765:17:7;:21;23761:292;;;23871:17;;;;23990:7;;;;23818:224;;23847:6;;-1:-1:-1;;;23871:17:7;;;-1:-1:-1;;;;;23871:17:7;;23906:10;;23934:8;;23969:3;23960:12;;;-1:-1:-1;;;;;23990:7:7;24015:13;23818:11;:224::i;:::-;23802:240;;23761:292;22510:1549;;;;;;;;;;:::o;5755:249:12:-;5812:4;5892:19;5832:1;:11;;;-1:-1:-1;;;;;5832:16:12;;5828:55;;;5871:1;5864:8;;;;5828:55;5914:24;5926:1;:11;;;5914;:24::i;:::-;5892:46;;5955:21;5971:4;5955:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;-1:-1:-1;;;5955:21:12;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;18233:513:7;18289:17;18318:21;18449:6;18342:19;18353:1;:7;;;18342:10;:19::i;:::-;18384:12;;-1:-1:-1;;;18384:12:7;;-1:-1:-1;;;;;18384:12:7;;-1:-1:-1;18384:12:7;-1:-1:-1;18384:12:7;;-1:-1:-1;18444:296:7;18465:1;:17;;;:24;18461:1;:28;18444:296;;;18514:32;18525:1;:17;;;18543:1;18525:20;;;;;;;;;;;;;;;;18514:10;:32::i;:::-;18645:12;;18510:36;;-1:-1:-1;;;;;;18645:25:7;;;-1:-1:-1;;;18645:12:7;;;;:25;18641:89;;;18703:12;;-1:-1:-1;;;18703:12:7;;-1:-1:-1;;;;;18703:12:7;;-1:-1:-1;18641:89:7;18491:3;;18444:296;;487:96:27;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;20517:1287:7:-;20802:6;20727:18;;20846:19;20857:7;20846:10;:19::i;:::-;20969:12;;;;;;-1:-1:-1;20969:12:7;;;-1:-1:-1;;;;;20969:12:7;20961:26;;;;:47;;;21007:1;20991:13;:17;20961:47;20957:841;;;21161:6;21157:631;;;21199:12;;;;;;;-1:-1:-1;;;;;21199:12:7;:27;21248:7;21277:10;21309:8;21339:7;21368:5;21395:6;21199:220;;;;;;;;-1:-1:-1;;;21199:220:7;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21445:26:7;;;;21437:35;;;;;;21506:9;21490:25;;21157:631;;;21554:12;;;;;;;-1:-1:-1;;;;;21554:12:7;:26;21602:7;21631:10;21663:8;21693:7;21722:5;21749:6;21554:219;;-1:-1:-1;;;21554:219:7;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20517:1287;;;;;;;;;;;:::o;767:94:27:-;842:12;767:94;:::o;1086:825:8:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:825:8;;;-1:-1:-1;1086:825:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:825:8;;;;;-1:-1:-1;;;;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:825:8;;;-1:-1:-1;1086:825:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1086:825:8;;;;;;;;;;-1:-1:-1;;1086:825:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "4384000", + "executionCost": "25290", + "totalCost": "4409290" + }, + "external": { + "ESCAPE_HATCH_CALLER_ROLE()": "1144", + "EVMSCRIPT_REGISTRY_APP()": "1189", + "EVMSCRIPT_REGISTRY_APP_ID()": "726", + "PLUGIN_MANAGER_ROLE()": "infinite", + "addDelegate(string,string,uint64,address)": "infinite", + "addGiver(address,string,string,uint64,address)": "infinite", + "addGiver(string,string,uint64,address)": "infinite", + "addGiverAndDonate(uint64,address,address,uint256)": "infinite", + "addGiverAndDonate(uint64,address,uint256)": "infinite", + "addProject(string,string,address,uint64,uint64,address)": "infinite", + "addValidPluginContract(bytes32)": "infinite", + "addValidPluginContracts(bytes32[])": "infinite", + "addValidPluginInstance(address)": "infinite", + "appId()": "1030", + "canPerform(address,bytes32,uint256[])": "infinite", + "cancelPayment(uint64,uint256)": "infinite", + "cancelPledge(uint64,uint256)": "infinite", + "cancelProject(uint64)": "infinite", + "confirmPayment(uint64,uint256)": "infinite", + "donate(uint64,uint64,address,uint256)": "infinite", + "escapeHatch(address)": "infinite", + "escapeHatchDestination()": "1689", + "getCodeHash(address)": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "1096", + "getPledge(uint64)": "infinite", + "getPledgeAdmin(uint64)": "infinite", + "getPledgeDelegate(uint64,uint64)": "infinite", + "initialize(address)": "1366", + "initialize(address,address)": "infinite", + "isProjectCanceled(uint64)": "infinite", + "isTokenEscapable(address)": "1311", + "isValidPlugin(address)": "infinite", + "kernel()": "1557", + "mCancelPayment(uint256[])": "infinite", + "mConfirmPayment(uint256[])": "infinite", + "mNormalizePledge(uint64[])": "infinite", + "mTransfer(uint64,uint256[],uint64)": "infinite", + "mWithdraw(uint256[])": "infinite", + "mock_time()": "1162", + "normalizePledge(uint64)": "infinite", + "numberOfPledgeAdmins()": "819", + "numberOfPledges()": "534", + "removeValidPluginContract(bytes32)": "infinite", + "removeValidPluginInstance(address)": "infinite", + "setMockedTime(uint256)": "20989", + "transfer(uint64,uint64,uint256,uint64)": "infinite", + "updateDelegate(uint64,address,string,string,uint64)": "infinite", + "updateGiver(uint64,address,string,string,uint64)": "infinite", + "updateProject(uint64,address,string,string,uint64)": "infinite", + "useWhitelist(bool)": "infinite", + "vault()": "1766", + "whitelistDisabled()": "470", + "withdraw(uint64,uint256)": "infinite" + }, + "internal": { + "_getTime()": "215" + } + }, + "methodIdentifiers": { + "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "PLUGIN_MANAGER_ROLE()": "24fea3b0", + "addDelegate(string,string,uint64,address)": "52dc7dcc", + "addGiver(address,string,string,uint64,address)": "6e802c6a", + "addGiver(string,string,uint64,address)": "7f61fa93", + "addGiverAndDonate(uint64,address,address,uint256)": "007611c6", + "addGiverAndDonate(uint64,address,uint256)": "6ba3cc87", + "addProject(string,string,address,uint64,uint64,address)": "72116e92", + "addValidPluginContract(bytes32)": "c8ae070f", + "addValidPluginContracts(bytes32[])": "32ce8ebc", + "addValidPluginInstance(address)": "79f4542e", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "cancelPayment(uint64,uint256)": "e9c211e2", + "cancelPledge(uint64,uint256)": "af9f4563", + "cancelProject(uint64)": "796d5654", + "confirmPayment(uint64,uint256)": "2ee88808", + "donate(uint64,uint64,address,uint256)": "4c4316c7", + "escapeHatch(address)": "a142d608", + "escapeHatchDestination()": "f5b61230", + "getCodeHash(address)": "81ea4408", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "getPledge(uint64)": "3f657a46", + "getPledgeAdmin(uint64)": "eba8ba06", + "getPledgeDelegate(uint64,uint64)": "2f6b64ca", + "initialize(address)": "c4d66de8", + "initialize(address,address)": "485cc955", + "isProjectCanceled(uint64)": "2101a6ad", + "isTokenEscapable(address)": "892db057", + "isValidPlugin(address)": "4eafbcd5", + "kernel()": "d4aae0c4", + "mCancelPayment(uint256[])": "ef3766e4", + "mConfirmPayment(uint256[])": "9398f5a2", + "mNormalizePledge(uint64[])": "ce17273c", + "mTransfer(uint64,uint256[],uint64)": "d639cd73", + "mWithdraw(uint256[])": "57adafb6", + "mock_time()": "9da47a6b", + "normalizePledge(uint64)": "50f8a803", + "numberOfPledgeAdmins()": "5503d9ba", + "numberOfPledges()": "2a8ec8cc", + "removeValidPluginContract(bytes32)": "b12b5f76", + "removeValidPluginInstance(address)": "6293c702", + "setMockedTime(uint256)": "ab8be231", + "transfer(uint64,uint64,uint256,uint64)": "47c5ef43", + "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", + "updateGiver(uint64,address,string,string,uint64)": "db7c2314", + "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", + "useWhitelist(bool)": "38740291", + "vault()": "fbfa77cf", + "whitelistDisabled()": "1c8e8568", + "withdraw(uint64,uint256)": "43387983" + } + }, + "userdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" + }, + "addGiver(string,string,uint64,address)": { + "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" + }, + "cancelPayment(uint64,uint256)": { + "notice": "`onlyVault` Cancels a withdraw request, changing the PledgeState from Paying back to Pledged" + }, + "cancelPledge(uint64,uint256)": { + "notice": "Transfers `amount` in `idPledge` back to the `oldPledge` that that sent it there in the first place, a Ctrl-z " + }, + "cancelProject(uint64)": { + "notice": "Changes the `project.canceled` flag to `true`; cannot be undone" + }, + "confirmPayment(uint64,uint256)": { + "notice": "`onlyVault` Confirms a withdraw request changing the PledgeState from Paying to Paid" + }, + "donate(uint64,uint64,address,uint256)": { + "notice": "This is how value enters the system and how pledges are created; the ether is sent to the vault, an pledge for the Giver is created (or found), the amount of ETH donated in wei is added to the `amount` in the Giver's Pledge, and an LP transfer is done to the idReceiver for the full amount" + }, + "escapeHatch(address)": { + "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" + }, + "getPledge(uint64)": { + "notice": "A getter that returns the details of the specified pledge" + }, + "getPledgeAdmin(uint64)": { + "notice": "A constant getter to check the details of a specified Admin" + }, + "getPledgeDelegate(uint64,uint64)": { + "notice": "//////////////////////////Getter to find Delegate w/ the Pledge ID & the Delegate index" + }, + "initialize(address)": { + "notice": "////////////" + }, + "isProjectCanceled(uint64)": { + "notice": "A getter to find if a specified Project has been canceled" + }, + "isTokenEscapable(address)": { + "notice": "Checks to see if `_token` is in the blacklist of tokens" + }, + "mCancelPayment(uint256[])": { + "notice": "`mCancelPayment` allows for multiple pledges to be canceled efficiently" + }, + "mConfirmPayment(uint256[])": { + "notice": "`mConfirmPayment` allows for multiple pledges to be confirmed efficiently" + }, + "mNormalizePledge(uint64[])": { + "notice": "`mNormalizePledge` allows for multiple pledges to be normalized efficiently" + }, + "mTransfer(uint64,uint256[],uint64)": { + "notice": "Transfers multiple amounts within multiple Pledges in an efficient single call " + }, + "mWithdraw(uint256[])": { + "notice": "Authorizes multiple amounts within multiple Pledges to be withdrawn from the `vault` in an efficient single call " + }, + "normalizePledge(uint64)": { + "notice": "Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" + }, + "numberOfPledgeAdmins()": { + "notice": "//////////////////////////A constant getter used to check how many total Admins exist" + }, + "numberOfPledges()": { + "notice": "/////////////////////////A constant getter that returns the total number of pledges" + }, + "transfer(uint64,uint64,uint256,uint64)": { + "notice": "Transfers amounts between pledges for internal accounting" + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" + }, + "updateGiver(uint64,address,string,string,uint64)": { + "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" + }, + "updateProject(uint64,address,string,string,uint64)": { + "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" + }, + "withdraw(uint64,uint256)": { + "notice": "Authorizes a payment be made from the `vault` can be used by the Giver to veto a pre-committed donation from a Delegate to an intendedProject" + } + } + } + } + }, + "./contracts/LiquidPledgingPlugins.sol": { + "LiquidPledgingPlugins": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "whitelistDisabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PLUGIN_MANAGER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHashes", + "type": "bytes32[]" + } + ], + "name": "addValidPluginContracts", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "useWhitelist", + "type": "bool" + } + ], + "name": "useWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "isValidPlugin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "removeValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "addValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getCodeHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "removeValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "addValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vault", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029", + "sourceMap": "961:2242:9:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;961:2242:9;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029", + "sourceMap": "961:2242:9:-;;;;;;;;;-1:-1:-1;;;961:2242:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226;;;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;2126:450;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;1146:132;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1670:174:9;;;;;;;;;;;;;;1284:148;;;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1438:226::-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;;1438:226;;;;:::o;1994:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;2126:450::-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;-1:-1:-1;2474:40:9;-1:-1:-1;2126:450:9;;;;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;1146:132::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1284:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;115:101:18:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;:::-;186:23;115:101;-1:-1:-1;;115:101:18:o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:18;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;961:2242:9:-;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "598800", + "executionCost": "20845", + "totalCost": "619645" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "727", + "EVMSCRIPT_REGISTRY_APP_ID()": "418", + "PLUGIN_MANAGER_ROLE()": "infinite", + "addValidPluginContract(bytes32)": "infinite", + "addValidPluginContracts(bytes32[])": "infinite", + "addValidPluginInstance(address)": "infinite", + "appId()": "612", + "canPerform(address,bytes32,uint256[])": "infinite", + "getCodeHash(address)": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "656", + "isValidPlugin(address)": "infinite", + "kernel()": "919", + "removeValidPluginContract(bytes32)": "infinite", + "removeValidPluginInstance(address)": "infinite", + "useWhitelist(bool)": "infinite", + "vault()": "974", + "whitelistDisabled()": "448" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "PLUGIN_MANAGER_ROLE()": "24fea3b0", + "addValidPluginContract(bytes32)": "c8ae070f", + "addValidPluginContracts(bytes32[])": "32ce8ebc", + "addValidPluginInstance(address)": "79f4542e", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "getCodeHash(address)": "81ea4408", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "isValidPlugin(address)": "4eafbcd5", + "kernel()": "d4aae0c4", + "removeValidPluginContract(bytes32)": "b12b5f76", + "removeValidPluginInstance(address)": "6293c702", + "useWhitelist(bool)": "38740291", + "vault()": "fbfa77cf", + "whitelistDisabled()": "1c8e8568" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/LiquidPledgingStorage.sol": { + "ILPVault": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_ref", + "type": "bytes32" + }, + { + "name": "_dest", + "type": "address" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "authorizePayment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "authorizePayment(bytes32,address,address,uint256)": "a5426df1" + } + }, + "userdoc": { + "methods": {} + } + }, + "LiquidPledgingStorage": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "whitelistDisabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vault", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029", + "sourceMap": "604:2197:10:-;;;2506:37;;;-1:-1:-1;;2506:37:10;;;604:2197;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029", + "sourceMap": "604:2197:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2550:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37;;;;;;:::o;2550:21::-;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "51200", + "executionCost": "20312", + "totalCost": "71512" + }, + "external": { + "vault()": "421", + "whitelistDisabled()": "385" + } + }, + "methodIdentifiers": { + "vault()": "fbfa77cf", + "whitelistDisabled()": "1c8e8568" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/PledgeAdmins.sol": { + "PledgeAdmins": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "whitelistDisabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "projectId", + "type": "uint64" + } + ], + "name": "isProjectCanceled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PLUGIN_MANAGER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHashes", + "type": "bytes32[]" + } + ], + "name": "addValidPluginContracts", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "useWhitelist", + "type": "bool" + } + ], + "name": "useWhitelist", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "isValidPlugin", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addDelegate", + "outputs": [ + { + "name": "idDelegate", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledgeAdmins", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "removeValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "projectAdmin", + "type": "address" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addProject", + "outputs": [ + { + "name": "idProject", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "addValidPluginInstance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "plugin", + "type": "address" + } + ], + "name": "addGiver", + "outputs": [ + { + "name": "idGiver", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getCodeHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "removeValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "contractHash", + "type": "bytes32" + } + ], + "name": "addValidPluginContract", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idDelegate", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateDelegate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idGiver", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateGiver", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idAdmin", + "type": "uint64" + } + ], + "name": "getPledgeAdmin", + "outputs": [ + { + "name": "adminType", + "type": "uint8" + }, + { + "name": "addr", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "parentProject", + "type": "uint64" + }, + { + "name": "canceled", + "type": "bool" + }, + { + "name": "plugin", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "idProject", + "type": "uint64" + }, + { + "name": "newAddr", + "type": "address" + }, + { + "name": "newName", + "type": "string" + }, + { + "name": "newUrl", + "type": "string" + }, + { + "name": "newCommitTime", + "type": "uint64" + } + ], + "name": "updateProject", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vault", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idGiver", + "type": "uint64" + } + ], + "name": "GiverUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idDelegate", + "type": "uint64" + } + ], + "name": "DelegateUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "idProject", + "type": "uint64" + } + ], + "name": "ProjectUpdated", + "type": "event" + } + ], + "devdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "name": "The name used to identify the Delegate", + "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Delegate's profile often an IPFS hash" + }, + "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" + }, + "addGiver(string,string,uint64,address)": { + "params": { + "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "name": "The name used to identify the Giver", + "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", + "url": "The link to the Giver's profile often an IPFS hash" + }, + "return": "idGiver The id number used to reference this Admin" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "params": { + "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", + "name": "The name used to identify the Project", + "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", + "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", + "projectAdmin": "The address for the trusted project manager", + "url": "The link to the Project's profile often an IPFS hash" + }, + "return": "idProject The id number used to reference this Admin" + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "getPledgeAdmin(uint64)": { + "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" + }, + "isProjectCanceled(uint64)": { + "params": { + "projectId": "The Admin id number used to specify the Project" + }, + "return": "True if the Project has been canceled" + }, + "numberOfPledgeAdmins()": { + "return": "The total number of admins (Givers, Delegates and Projects) ." + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "params": { + "idDelegate": "The Admin id number used to specify the Delegate", + "newAddr": "The new address that represents this Delegate", + "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", + "newName": "The new name used to identify the Delegate", + "newUrl": "The new link to the Delegate's profile often an IPFS hash" + } + }, + "updateGiver(uint64,address,string,string,uint64)": { + "params": { + "idGiver": "This is the Admin id number used to specify the Giver", + "newAddr": "The new address that represents this Giver", + "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", + "newName": "The new name used to identify the Giver", + "newUrl": "The new link to the Giver's profile often an IPFS hash" + } + }, + "updateProject(uint64,address,string,string,uint64)": { + "params": { + "idProject": "The Admin id number used to specify the Project", + "newAddr": "The new address that represents this Project", + "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", + "newName": "The new name used to identify the Project", + "newUrl": "The new link to the Project's profile often an IPFS hash" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029", + "sourceMap": "919:12044:11:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;919:12044:11;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029", + "sourceMap": "919:12044:11:-;;;;;;;;;-1:-1:-1;;;919:12044:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226;;;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;2126:450;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;;;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;;;;;;;;;;;;;;;;;;;9903:103;;;;;;;;;;;;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;;;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;;;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1670:174:9;;;;;;;;;;;;;;1284:148;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;10774:572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;;;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;;;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;12012:15;;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1438:226::-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;;1438:226;;;;:::o;1994:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;2126:450::-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;;;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;5447:25;;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;;;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;3043:19;;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;7821:18;;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;:42;;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;8399:23;;;;;;;;;;;;7535:894;;;;;;;;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1284:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;;;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;;;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;10774:572::-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;;;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;11293:10:11;;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;9133:520::-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;;;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;12371:23;;;;12363:32;;;;;;12412:6;:15;;;;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;12650:311::-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;:20;;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;115:101:18:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;:::-;186:23;115:101;-1:-1:-1;;115:101:18:o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;919:12044:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:12044:11;;;-1:-1:-1;919:12044:11;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "1787200", + "executionCost": "22097", + "totalCost": "1809297" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "859", + "EVMSCRIPT_REGISTRY_APP_ID()": "484", + "PLUGIN_MANAGER_ROLE()": "infinite", + "addDelegate(string,string,uint64,address)": "infinite", + "addGiver(address,string,string,uint64,address)": "infinite", + "addGiver(string,string,uint64,address)": "infinite", + "addProject(string,string,address,uint64,uint64,address)": "infinite", + "addValidPluginContract(bytes32)": "infinite", + "addValidPluginContracts(bytes32[])": "infinite", + "addValidPluginInstance(address)": "infinite", + "appId()": "744", + "canPerform(address,bytes32,uint256[])": "infinite", + "getCodeHash(address)": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "788", + "getPledgeAdmin(uint64)": "infinite", + "isProjectCanceled(uint64)": "infinite", + "isValidPlugin(address)": "infinite", + "kernel()": "1073", + "numberOfPledgeAdmins()": "600", + "removeValidPluginContract(bytes32)": "infinite", + "removeValidPluginInstance(address)": "infinite", + "updateDelegate(uint64,address,string,string,uint64)": "infinite", + "updateGiver(uint64,address,string,string,uint64)": "infinite", + "updateProject(uint64,address,string,string,uint64)": "infinite", + "useWhitelist(bool)": "infinite", + "vault()": "1194", + "whitelistDisabled()": "448" + }, + "internal": { + "_findAdmin(uint64)": "563", + "_getProjectLevel(struct LiquidPledgingStorage.PledgeAdmin memory)": "infinite" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "PLUGIN_MANAGER_ROLE()": "24fea3b0", + "addDelegate(string,string,uint64,address)": "52dc7dcc", + "addGiver(address,string,string,uint64,address)": "6e802c6a", + "addGiver(string,string,uint64,address)": "7f61fa93", + "addProject(string,string,address,uint64,uint64,address)": "72116e92", + "addValidPluginContract(bytes32)": "c8ae070f", + "addValidPluginContracts(bytes32[])": "32ce8ebc", + "addValidPluginInstance(address)": "79f4542e", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "getCodeHash(address)": "81ea4408", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "getPledgeAdmin(uint64)": "eba8ba06", + "isProjectCanceled(uint64)": "2101a6ad", + "isValidPlugin(address)": "4eafbcd5", + "kernel()": "d4aae0c4", + "numberOfPledgeAdmins()": "5503d9ba", + "removeValidPluginContract(bytes32)": "b12b5f76", + "removeValidPluginInstance(address)": "6293c702", + "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", + "updateGiver(uint64,address,string,string,uint64)": "db7c2314", + "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", + "useWhitelist(bool)": "38740291", + "vault()": "fbfa77cf", + "whitelistDisabled()": "1c8e8568" + } + }, + "userdoc": { + "methods": { + "addDelegate(string,string,uint64,address)": { + "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" + }, + "addGiver(string,string,uint64,address)": { + "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" + }, + "addProject(string,string,address,uint64,uint64,address)": { + "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" + }, + "getPledgeAdmin(uint64)": { + "notice": "A constant getter to check the details of a specified Admin" + }, + "isProjectCanceled(uint64)": { + "notice": "A getter to find if a specified Project has been canceled" + }, + "numberOfPledgeAdmins()": { + "notice": "//////////////////////////A constant getter used to check how many total Admins exist" + }, + "updateDelegate(uint64,address,string,string,uint64)": { + "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" + }, + "updateGiver(uint64,address,string,string,uint64)": { + "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" + }, + "updateProject(uint64,address,string,string,uint64)": { + "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" + } + } + } + } + }, + "./contracts/Pledges.sol": { + "Pledges": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "whitelistDisabled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numberOfPledges", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "idPledge", + "type": "uint64" + } + ], + "name": "getPledge", + "outputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "owner", + "type": "uint64" + }, + { + "name": "nDelegates", + "type": "uint64" + }, + { + "name": "intendedProject", + "type": "uint64" + }, + { + "name": "commitTime", + "type": "uint64" + }, + { + "name": "oldPledge", + "type": "uint64" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "pledgeState", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vault", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "getPledge(uint64)": { + "params": { + "idPledge": "the id number of the pledge being queried" + }, + "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" + }, + "numberOfPledges()": { + "return": "The total number of Pledges in the system" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029", + "sourceMap": "920:5086:12:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;920:5086:12;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029", + "sourceMap": "920:5086:12:-;;;;;;;;;-1:-1:-1;;;920:5086:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1903:611;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;113:20:23;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;:::o;1903:611::-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;4554:161:12:-;4659:7;:14;4614:6;;4648:25;;;;4640:34;;;;;;4691:7;:17;;;;;;;;;;;;;;;;;;;;;;4684:24;;4554:161;;;:::o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;920:5086:12;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "466000", + "executionCost": "20712", + "totalCost": "486712" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "617", + "EVMSCRIPT_REGISTRY_APP_ID()": "374", + "appId()": "524", + "canPerform(address,bytes32,uint256[])": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "546", + "getPledge(uint64)": "infinite", + "kernel()": "765", + "numberOfPledges()": "467", + "vault()": "820", + "whitelistDisabled()": "448" + }, + "internal": { + "_findOrCreatePledge(uint64,uint64[] memory,uint64,uint64,uint64,address,enum LiquidPledgingStorage.PledgeState)": "infinite", + "_findPledge(uint64)": "563", + "_getDelegateIdx(struct LiquidPledgingStorage.Pledge memory,uint64)": "infinite", + "_getPledgeLevel(struct LiquidPledgingStorage.Pledge memory)": "infinite" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "getPledge(uint64)": "3f657a46", + "kernel()": "d4aae0c4", + "numberOfPledges()": "2a8ec8cc", + "vault()": "fbfa77cf", + "whitelistDisabled()": "1c8e8568" + } + }, + "userdoc": { + "methods": { + "getPledge(uint64)": { + "notice": "A getter that returns the details of the specified pledge" + }, + "numberOfPledges()": { + "notice": "/////////////////////////A constant getter that returns the total number of pledges" + } + } + } + } + }, + "./contracts/test/StandardToken.sol": { + "StandardToken": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "_owner": "address The address which owns the funds.", + "_spender": "address The address which will spend the funds." + }, + "return": "A uint256 specifying the amount of tokens still available for the spender." + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", + "params": { + "_spender": "The address which will spend the funds.", + "_value": "The amount of tokens to be spent." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "_owner": "The address to query the the balance of." + }, + "return": "An uint256 representing the amount owned by the passed address." + }, + "decreaseApproval(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "_spender": "The address which will spend the funds.", + "_subtractedValue": "The amount of tokens to decrease the allowance by." + } + }, + "increaseApproval(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "_addedValue": "The amount of tokens to increase the allowance by.", + "_spender": "The address which will spend the funds." + } + }, + "totalSupply()": { + "details": "total number of tokens in existence" + }, + "transfer(address,uint256)": { + "details": "transfer token for a specified address", + "params": { + "_to": "The address to transfer to.", + "_value": "The amount to be transferred." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "_from": "address The address which you want to send tokens from", + "_to": "address The address which you want to transfer to", + "_value": "uint256 the amount of tokens to be transferred" + } + } + }, + "title": "Standard ERC20 token" + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b60038054600160a060020a03191633600160a060020a031617905561063e806100396000396000f3006060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029", + "sourceMap": "504:5141:13:-;;;842:63;;;;;;;;882:5;:18;;-1:-1:-1;;;;;;882:18:13;890:10;-1:-1:-1;;;;;882:18:13;;;;504:5141;;;-1:-1:-1;504:5141:13;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029", + "sourceMap": "504:5141:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3446:183;;;;;;;;;;-1:-1:-1;;;;;3446:183:13;;;;;;;;;;;;;;;;;;;;;;;;1040:83;;;;;;;;;;;;;;;;;;;;;;;;;;;2393:430;;;;;;;;;;-1:-1:-1;;;;;2393:430:13;;;;;;;;;;;;1127:156;;;;;;;;;;-1:-1:-1;;;;;1127:156:13;;;;;;;;;5247:395;;;;;;;;;;-1:-1:-1;;;;;5247:395:13;;;;;;;2012:107;;;;;;;;;;-1:-1:-1;;;;;2012:107:13;;;;;1437:373;;;;;;;;;;-1:-1:-1;;;;;1437:373:13;;;;;;;4531:254;;;;;;;;;;-1:-1:-1;;;;;4531:254:13;;;;;;;3948:126;;;;;;;;;;-1:-1:-1;;;;;3948:126:13;;;;;;;;;;3446:183;-1:-1:-1;;;;;3533:10:13;3525:19;;3513:4;3525:19;;;;;;;;;;;:29;;;;;;;;;;;;;:38;;;3513:4;;3525:29;:19;3569:38;;3557:6;;3569:38;;;;;;;;;;;;;-1:-1:-1;3620:4:13;3446:183;;;;:::o;1040:83::-;1106:12;;1040:83;:::o;2393:430::-;2475:4;-1:-1:-1;;;;;2495:17:13;;;;2487:26;;;;;;-1:-1:-1;;;;;2537:15:13;;;;;;:8;:15;;;;;;2527:25;;;2519:34;;;;;;-1:-1:-1;;;;;2577:14:13;;;:7;:14;;;;;;;;;;;2592:10;2577:26;;;;;;;;;;2567:36;;;2559:45;;;;;;-1:-1:-1;;;;;2629:15:13;;;;;;;:8;:15;;;;;;;;;;:24;;;2611:42;;2675:13;;;;;;;;;;;:22;;2659:38;;2732:14;;;;;;;;;2747:10;2732:26;;;;;;;;;;;;;;;:35;;;2703:64;;2773:28;;2629:24;;2773:28;;;;;;;;;;;;;-1:-1:-1;2814:4:13;2393:430;;;;;:::o;1127:156::-;960:5;;946:10;-1:-1:-1;;;;;946:19:13;;;960:5;;946:19;938:28;;;;;;1192:12;:22;;;;;;-1:-1:-1;;;;;1222:13:13;;1192:12;1222:13;;;-1:-1:-1;1222:13:13;;;;;;:23;;;;;;1253:24;;1208:6;;1253:24;;;;;;;;;;;;;1127:156;;:::o;5247:395::-;-1:-1:-1;;;;;5366:10:13;5358:19;;5330:4;5358:19;;;;;;;;;;;:29;;;;;;;;;;;;5397:27;;;5393:161;;;-1:-1:-1;;;;;5442:10:13;5434:19;;5466:1;5434:19;;;;;;;;;;;:29;;;;;;;;;;;:33;5393:161;;;-1:-1:-1;;;;;5496:10:13;5488:19;;:7;:19;;;;;;;;;;;:29;;;;;;;;;5520:27;;;5488:59;;5393:161;-1:-1:-1;;;;;5568:10:13;5559:61;;5590:7;:19;;;;;;;;;;;5559:61;;;5590:29;;;;;;;;;;;;5559:61;;;;;;;;;;;;;;;-1:-1:-1;5633:4:13;;5247:395;-1:-1:-1;;;5247:395:13:o;2012:107::-;-1:-1:-1;;;;;2098:16:13;2068:15;2098:16;;;:8;:16;;;;;;;2012:107::o;1437:373::-;1500:4;-1:-1:-1;;;;;1520:17:13;;;;1512:26;;;;;;-1:-1:-1;;;;;1571:10:13;1562:20;;;;;:8;:20;;;;;;1552:30;;;1544:39;;;;;;-1:-1:-1;;;;;1685:10:13;1676:20;;;;;;:8;:20;;;;;;;;:29;;;1653:52;;1727:13;;;;;;;;;;;;:22;;1711:38;;1727:13;1755:33;;1699:6;;1755:33;;;;;;;;;;;;;-1:-1:-1;1801:4:13;1437:373;;;;:::o;4531:254::-;-1:-1:-1;;;;;4661:10:13;4653:19;;4609:4;4653:19;;;;;;;;;;;:29;;;;;;;;;;;;;;;:43;;4621:75;;;;4609:4;;4653:29;:19;4702:61;;;;;;;;;;;;;;;-1:-1:-1;4776:4:13;4531:254;;;;:::o;3948:126::-;-1:-1:-1;;;;;4044:15:13;;;4022:7;4044:15;;;;;;;;;;;:25;;;;;;;;;;;;;3948:126::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "319600", + "executionCost": "20717", + "totalCost": "340317" + }, + "external": { + "allowance(address,address)": "870", + "approve(address,uint256)": "22330", + "balanceOf(address)": "705", + "decreaseApproval(address,uint256)": "23286", + "increaseApproval(address,uint256)": "22690", + "mint(address,uint256)": "42975", + "totalSupply()": "395", + "transfer(address,uint256)": "43332", + "transferFrom(address,address,uint256)": "64071" + } + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "decreaseApproval(address,uint256)": "66188463", + "increaseApproval(address,uint256)": "d73dd623", + "mint(address,uint256)": "40c10f19", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/test/TestSimpleDelegatePlugin.sol": { + "TestSimpleDelegatePlugin": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "idDelegate", + "outputs": [ + { + "name": "", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + } + ], + "name": "init", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "name": "pledgeFrom", + "type": "uint64" + }, + { + "name": "pledgeTo", + "type": "uint64" + }, + { + "name": "context", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "afterTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "name": "pledgeFrom", + "type": "uint64" + }, + { + "name": "pledgeTo", + "type": "uint64" + }, + { + "name": "context", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "beforeTransfer", + "outputs": [ + { + "name": "maxAllowed", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_liquidPledging", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeFrom", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeTo", + "type": "uint64" + }, + { + "indexed": false, + "name": "context", + "type": "uint64" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "BeforeTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeFrom", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeTo", + "type": "uint64" + }, + { + "indexed": false, + "name": "context", + "type": "uint64" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AfterTransfer", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029", + "sourceMap": "122:1437:14:-;;;473:230;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;557:10:14;-1:-1:-1;;;;;557:23:14;;;571:9;557:23;;;;;;549:32;;;;;;636:14;:32;;-1:-1:-1;;;;;;;;;;;636:32:14;;;;;-1:-1:-1;;;;;;;;636:32:14;;;;678:18;;;;;;;;122:1437;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029", + "sourceMap": "122:1437:14:-;;;;;;;;;-1:-1:-1;;;122:1437:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;709:255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;709:255:14;;-1:-1:-1;;;709:255:14;;;;;-1:-1:-1;709:255:14;;-1:-1:-1;;709:255:14;;;1280:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;:::o;709:255::-;815:11;;-1:-1:-1;;;815:11:14;;;;807:20;;;;;;;;850:14;;;;;;;;;;;:26;;;877:4;883:3;888:10;922:4;850:78;;;;;;;;-1:-1:-1;;;850:78:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:10:14;:91;;-1:-1:-1;;837:91:14;;;;;;;;;;938:19;;;;-1:-1:-1;;;;709:255:14:o;1280:276::-;1462:11;;-1:-1:-1;;;1462:11:14;;;;1461:12;1453:21;;;;;;1484:65;1498:11;1511:10;1523:8;1533:7;1542:6;1484:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:276;;;;;:::o;970:304::-;1143:15;1179:11;;-1:-1:-1;;;1179:11:14;;;;1178:12;1170:21;;;;;;1201:66;1216:11;1229:10;1241:8;1251:7;1260:6;1201:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "246600", + "executionCost": "20994", + "totalCost": "267594" + }, + "external": { + "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "2800", + "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "2870", + "idDelegate()": "451", + "init(string,string,uint64)": "infinite" + } + }, + "methodIdentifiers": { + "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "ad1483c3", + "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "d4edf5e5", + "idDelegate()": "20fe5c2a", + "init(string,string,uint64)": "7c032d5f" + } + }, + "userdoc": { + "methods": {} + } + }, + "TestSimpleDelegatePluginFactory": { + "abi": [ + { + "inputs": [ + { + "name": "liquidPledging", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "commitTime", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd966500296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029", + "sourceMap": "1561:335:14:-;;;1609:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:26:14;;-1:-1:-1;1832:14:14;1803:44;;:::i;:::-;-1:-1:-1;;;;;1803:44:14;;;;;;;;;;;;;;;;;;;;;;;;1774:73;;1857:1;-1:-1:-1;;;;;1857:6:14;;1864:4;1870:3;1875:10;1857:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1857:29:14;-1:-1:-1;;;;;1857:29:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:284:14;;;;;1561:335;;;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd96650029", + "sourceMap": "1561:335:14:-;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "10600", + "executionCost": "infinite", + "totalCost": "infinite" + } + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/test/TestSimpleProjectPlugin.sol": { + "TestSimpleProjectPlugin": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "liquidPledging", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "parentProject", + "type": "uint64" + } + ], + "name": "init", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "idProject", + "outputs": [ + { + "name": "", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "name": "pledgeFrom", + "type": "uint64" + }, + { + "name": "pledgeTo", + "type": "uint64" + }, + { + "name": "context", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "afterTransfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "name": "pledgeFrom", + "type": "uint64" + }, + { + "name": "pledgeTo", + "type": "uint64" + }, + { + "name": "context", + "type": "uint64" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "beforeTransfer", + "outputs": [ + { + "name": "maxAllowed", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeFrom", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeTo", + "type": "uint64" + }, + { + "indexed": false, + "name": "context", + "type": "uint64" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "BeforeTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "pledgeAdmin", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeFrom", + "type": "uint64" + }, + { + "indexed": false, + "name": "pledgeTo", + "type": "uint64" + }, + { + "indexed": false, + "name": "context", + "type": "uint64" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "AfterTransfer", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029", + "sourceMap": "122:1388:15:-;;;436:157;;;;;;;;503:9;-1:-1:-1;;;;;489:23:15;:10;-1:-1:-1;;;;;489:23:15;;;481:32;;;;;;;;568:11;:18;;-1:-1:-1;;;;;;568:18:15;;;;;122:1388;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029", + "sourceMap": "122:1388:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;599:316:15;;-1:-1:-1;;;599:316:15;;;;;-1:-1:-1;599:316:15;;-1:-1:-1;;599:316:15;;;162:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;747:11;;;;;;;739:20;;;;;;;;781:14;:25;;;807:4;813:3;826:4;833:13;848:1;873:4;781:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:9:15;:110;;-1:-1:-1;;769:110:15;;;;;;;;;;-1:-1:-1;;889:19:15;;;-1:-1:-1;;;;;599:316:15:o;162:23::-;;;;;;:::o;1231:276::-;1413:11;;;;;;;1412:12;1404:21;;;;;;1435:65;1449:11;1462:10;1474:8;1484:7;1493:6;1435:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;:::o;921:304::-;1094:15;1130:11;;;;;;;1129:12;1121:21;;;;;;1152:66;1167:11;1180:10;1192:8;1202:7;1211:6;1152:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "258200", + "executionCost": "20770", + "totalCost": "278970" + }, + "external": { + "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "2674", + "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "2744", + "idProject()": "410", + "init(address,string,string,uint64)": "infinite" + } + }, + "methodIdentifiers": { + "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "ad1483c3", + "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "d4edf5e5", + "idProject()": "94edc359", + "init(address,string,string,uint64)": "6e1c5d67" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "./contracts/test/TestSimpleProjectPluginFactory.sol": { + "TestSimpleProjectPluginFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "liquidPledging", + "type": "address" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "parentProject", + "type": "uint64" + } + ], + "name": "deploy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029", + "sourceMap": "168:314:16:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029", + "sourceMap": "168:314:16:-;;;;;;;;;;;;;;;;;;;;;;;215:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:264:16;;-1:-1:-1;;;215:264:16;;;;;-1:-1:-1;215:264:16;;-1:-1:-1;;215:264:16;;;;357:25;385:29;;:::i;:::-;;;;;;;;;;;;;;;;;;357:57;;424:1;:6;;;431:14;447:4;453:3;458:13;424:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:264:16;;;;;:::o;168:314::-;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "425000", + "executionCost": "456", + "totalCost": "425456" + }, + "external": { + "deploy(address,string,string,uint64)": "infinite" + } + }, + "methodIdentifiers": { + "deploy(address,string,string,uint64)": "c5688b7c" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/acl/ACL.sol": { + "ACL": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_entity", + "type": "address" + }, + { + "name": "_app", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + } + ], + "name": "grantPermission", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CREATE_PERMISSIONS_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_entity", + "type": "address" + }, + { + "name": "_app", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "_params", + "type": "uint256[]" + } + ], + "name": "grantPermissionP", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_who", + "type": "address" + }, + { + "name": "_where", + "type": "address" + }, + { + "name": "_what", + "type": "bytes32" + } + ], + "name": "hasPermission", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "bytes32" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "permissionParams", + "outputs": [ + { + "name": "id", + "type": "uint8" + }, + { + "name": "op", + "type": "uint8" + }, + { + "name": "value", + "type": "uint240" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_entity", + "type": "address" + }, + { + "name": "_app", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + } + ], + "name": "revokePermission", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newManager", + "type": "address" + }, + { + "name": "_app", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + } + ], + "name": "setPermissionManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_app", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + } + ], + "name": "getPermissionManager", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_entity", + "type": "address" + }, + { + "name": "_app", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "_manager", + "type": "address" + } + ], + "name": "createPermission", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_permissionsCreator", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EMPTY_PARAM_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_who", + "type": "address" + }, + { + "name": "_where", + "type": "address" + }, + { + "name": "_what", + "type": "bytes32" + }, + { + "name": "_how", + "type": "uint256[]" + } + ], + "name": "hasPermission", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_who", + "type": "address" + }, + { + "name": "_where", + "type": "address" + }, + { + "name": "_what", + "type": "bytes32" + }, + { + "name": "_how", + "type": "bytes" + } + ], + "name": "hasPermission", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "entity", + "type": "address" + }, + { + "indexed": true, + "name": "app", + "type": "address" + }, + { + "indexed": true, + "name": "role", + "type": "bytes32" + }, + { + "indexed": false, + "name": "allowed", + "type": "bool" + } + ], + "name": "SetPermission", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "app", + "type": "address" + }, + { + "indexed": true, + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "name": "manager", + "type": "address" + } + ], + "name": "ChangePermissionManager", + "type": "event" + } + ], + "devdoc": { + "methods": { + "createPermission(address,address,bytes32,address)": { + "details": "Creates a permission that wasn't previously set. Access is limited by the ACL. If a created permission is removed it is possible to reset it with createPermission.", + "params": { + "_app": "Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)", + "_entity": "Address of the whitelisted entity that will be able to perform the role", + "_manager": "Address of the entity that will be able to grant and revoke the permission further.", + "_role": "Identifier for the group of actions in app given access to perform" + } + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "getPermissionManager(address,bytes32)": { + "details": "Get manager for permission", + "params": { + "_app": "Address of the app", + "_role": "Identifier for a group of actions in app" + }, + "return": "address of the manager for the permission" + }, + "grantPermission(address,address,bytes32)": { + "details": "Grants permission if allowed. This requires `msg.sender` to be the permission manager", + "params": { + "_app": "Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)", + "_entity": "Address of the whitelisted entity that will be able to perform the role", + "_role": "Identifier for the group of actions in app given access to perform" + } + }, + "grantPermissionP(address,address,bytes32,uint256[])": { + "details": "Grants a permission with parameters if allowed. This requires `msg.sender` to be the permission manager", + "params": { + "_app": "Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)", + "_entity": "Address of the whitelisted entity that will be able to perform the role", + "_params": "Permission parameters", + "_role": "Identifier for the group of actions in app given access to perform" + } + }, + "hasPermission(address,address,bytes32,bytes)": { + "details": "Function called by apps to check ACL on kernel or to check permission statu", + "params": { + "_how": "Permission parameters", + "_where": "Identifier for a group of actions in app", + "_who": "Sender of the original call" + }, + "return": "boolean indicating whether the ACL allows the role or not" + }, + "initialize(address)": { + "details": "Initialize can only be called once. It saves the block number in which it was initialized.", + "params": { + "_permissionsCreator": "Entity that will be given permission over createPermission" + } + }, + "revokePermission(address,address,bytes32)": { + "details": "Revokes permission if allowed. This requires `msg.sender` to be the the permission manager", + "params": { + "_app": "Address of the app in which the role will be revoked", + "_entity": "Address of the whitelisted entity to revoke access from", + "_role": "Identifier for the group of actions in app being revoked" + } + }, + "setPermissionManager(address,address,bytes32)": { + "params": { + "_app": "Address of the app in which the permission management is being transferred", + "_newManager": "Address for the new manager", + "_role": "Identifier for the group of actions being transferred" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", + "sourceMap": "231:13878:17:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", + "sourceMap": "231:13878:17:-;;;;;;;;;-1:-1:-1;;;231:13878:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3939:165;;;;;;;;;;-1:-1:-1;;;;;3939:165:17;;;;;;;;;;;;;;281:60;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;4664:365:17;;;;;;;;;;-1:-1:-1;;;;;4664:365:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4664:365:17;;-1:-1:-1;4664:365:17;;-1:-1:-1;;;;;;4664:365:17;7973:211;;;;;;;;;;-1:-1:-1;;;;;7973:211:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;484:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;484:52:17;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;5465:256:17;;;;;;;;;;-1:-1:-1;;;;;5465:256:17;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;6045:208:17;;;;;;;;;;-1:-1:-1;;;;;6045:208:17;;;;;;;;;;;;6465:153;;;;;;;;;;-1:-1:-1;;;;;6465:153:17;;;;;;;;;;-1:-1:-1;;;;;6465:153:17;;;;;;;;;;;;;;;3190:250;;;;;;;;;;-1:-1:-1;;;;;3190:250:17;;;;;;;;;;;;;;;;;;2179:244;;;;;;;;;;-1:-1:-1;;;;;2179:244:17;;;;;1371:64;;;;;;;;;;;;86:21:23;;;;;;;;;;;;7398:569:17;;;;;;;;;;-1:-1:-1;;;;;7398:569:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7398:569:17;;-1:-1:-1;7398:569:17;;-1:-1:-1;;;;;;7398:569:17;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;6984:408:17;;;;;;;;;;-1:-1:-1;;;;;6984:408:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6984:408:17;;-1:-1:-1;6984:408:17;;-1:-1:-1;;;;;;6984:408:17;3939:165;4041:56;4058:7;4067:4;4073:5;4094:1;4080:16;;;;;;;;;;;;;;;;;;;;;;;;4041;:56::i;:::-;3939:165;;;:::o;281:60::-;339:1;281:60;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;4664:365:17:-;4883:18;4785:4;4791:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:17;;;;;;1559:56;;;;;;4836:35;4850:7;4859:4;4865:5;4836:13;:35::i;:::-;4835:36;4827:45;;;;;;4921:1;4904:7;:14;:18;:60;;1432:1;1414:21;;;;;;;;;;;;;;4904:60;;;4925:20;4937:7;4925:11;:20::i;:::-;4883:81;;4974:48;4989:7;4998:4;5004:5;5011:10;4974:14;:48::i;:::-;4664:365;;;;;;;:::o;7973:211::-;8062:4;8078:22;;:::i;:::-;8117:1;8103:16;;;;;;;;;;;;;;;;;;;;;;;;8078:41;;8136;8150:4;8156:6;8164:5;8171;8136:13;:41::i;:::-;8129:48;7973:211;-1:-1:-1;;;;;7973:211:17:o;484:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;484:52:17;;;;;-1:-1:-1;484:52:17;;;-1:-1:-1;;;;;484:52:17;;:::o;113:20:23:-;;;;:::o;269:107:27:-;350:19;;269:107;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;5465:256:17:-;5567:4;5573:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:17;;;;;;1559:56;;;;;;5619:35;5633:7;5642:4;5648:5;5619:13;:35::i;:::-;5611:44;;;;;;;;5666:48;5681:7;5690:4;5696:5;5711:1;5666:14;:48::i;:::-;5465:256;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;6045:208:17:-;6155:4;6161:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:17;;;;;;1559:56;;;;;;6199:47;6221:11;6234:4;6240:5;6199:21;:47::i;6465:153::-;6545:7;6571:17;:40;6589:21;6598:4;6604:5;6589:8;:21::i;:::-;6571:40;;;;;;;;;;;-1:-1:-1;6571:40:17;;-1:-1:-1;;;;;6571:40:17;;;-1:-1:-1;;;6465:153:17:o;3190:250::-;3307:65;3321:10;3341:4;339:1;3307:13;:65::i;:::-;3299:74;;;;;;;;3384:49;3402:7;3411:4;3417:5;3424:8;3384:17;:49::i;:::-;3190:250;;;;:::o;2179:244::-;140:19:27;;:24;132:33;;;;;;2254:13:17;:11;:13::i;:::-;2307:6;;2285:10;-1:-1:-1;;;;;2285:29:17;;;2307:6;;2285:29;2277:38;;;;;;2326:90;2344:19;2365:4;339:1;2344:19;2326:17;:90::i;:::-;2179:244;:::o;1371:64::-;1432:1;1414:21;;;;;;;;;;;;;;1371:64;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;7398:569:17:-;7510:4;7526:17;7731;7546:11;:48;7558:35;7573:4;7579:6;7587:5;7558:14;:35::i;:::-;7546:48;;;;;;;;;;;;;;;-1:-1:-1;7608:23:17;;;;;:75;;;7635:48;7646:9;7657:4;7663:6;7671:5;7678:4;7635:10;:48::i;:::-;7604:117;;;7706:4;7699:11;;;;7604:117;7751:11;:54;7763:41;-1:-1:-1;;7790:6:17;7798:5;7763:14;:41::i;:::-;7751:54;;;;;;;;;;;;;;;-1:-1:-1;7819:23:17;;;;;:81;;-1:-1:-1;7846:54:17;7857:9;-1:-1:-1;;7880:6:17;7888:5;7895:4;7846:10;:54::i;:::-;7815:123;;;7923:4;7916:11;;;;7815:123;7955:5;7948:12;;7398:569;;;;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;6984:408:17:-;7092:4;7108:20;;:::i;:::-;7138:18;7173:2;7159:4;:11;:16;;;;;;;;7138:37;;7215:4;7208:11;;7262:10;7257:3;7250:6;7346:39;7360:4;7366:6;7374:5;7381:3;7346:13;:39::i;:::-;7339:46;6984:408;-1:-1:-1;;;;;;;6984:408:17:o;9014:596::-;9079:7;9098:17;9153:22;9286:9;9351:20;9409:18;;:::i;:::-;9128:14;9118:25;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;9178:27:17;;;;:16;:27;;;;;9220:13;;3:109:-1;;-1:-1;9178:27:17;-1:-1:-1;9220:18:17;9216:361;;;9298:1;9286:13;;9281:286;9305:14;:21;9301:1;:25;9281:286;;;9374:14;9389:1;9374:17;;;;;;;;;;;;;;;;9351:40;;9430:86;;;;;;;;;9436:27;9450:12;9436:13;:27::i;:::-;9430:86;;;;;;9465:27;9479:12;9465:13;:27::i;:::-;9430:86;;;;-1:-1:-1;;;;;9430:86:17;;;;;;;9534:18;;9409:107;;-1:-1:-1;9534:18:17;;-1:-1:-1;9534:18:17;;;;;;:::i;:::-;;;;;;;;;9546:5;;9534:18;9546:5;9534:18;;;-1:-1:-1;;9534:18:17;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9534:18:17;;;;;;;;;;;;-1:-1:-1;;;;;9534:18:17;;;;;;;;;;;;;-1:-1:-1;;;9328:3:17;;;;;9281:286;;;-1:-1:-1;9594:9:17;;9014:596;-1:-1:-1;;;;;9014:596:17:o;8755:253::-;8917:11;8865;:49;8877:36;8892:7;8901:4;8907:5;8877:14;:36::i;:::-;8865:49;;;;;;;;;;;;;-1:-1:-1;8865:49:17;:63;;;;8968:5;;-1:-1:-1;;;;;8939:62:17;;;;;;;;;;8975:25;;;;8939:62;;;;;;;;;;;;;;;8755:253;;;;:::o;13350:220::-;13493:11;13450:17;:40;13468:21;13477:4;13483:5;13468:8;:21::i;:::-;13450:40;;;;;;;;;;;;;-1:-1:-1;13450:40:17;:54;;-1:-1:-1;;13450:54:17;-1:-1:-1;;;;;13450:54:17;;;;;;13514:49;;;;13544:5;;13514:49;;;;;;;;;;;;;;13350:220;;;:::o;13576:141::-;13648:7;13692:1;13696:6;13704:5;13674:36;;;;;-1:-1:-1;;;;;13674:36:17;;;;;;;;;;;;;;;;;;;;;;;13667:43;;13576:141;;;;:::o;8290:376::-;8537:1;8492:33;8513:4;8519:5;8492:20;:33::i;:::-;-1:-1:-1;;;;;8492:47:17;;8484:56;;;;;;8551:54;8566:7;8575:4;8581:5;1432:1;1414:21;;;;;;;;;;;;;;8551:14;:54::i;:::-;8615:44;8637:8;8647:4;8653:5;8615:21;:44::i;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;13723:167:17:-;13815:7;13859:1;13863:4;13869:6;13877:5;13841:42;;;;;;-1:-1:-1;;;;;13841:42:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13834:49;;13723:167;;;;;;:::o;9616:340::-;9787:4;1432:1;1414:21;;;;;;;;;;;;;;;9811:31;;9807:73;;;-1:-1:-1;9865:4:17;9858:11;;9807:73;9897:52;9907:11;9920:1;9923:4;9929:6;9937:5;9944:4;9897:9;:52::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;2426:112:18:-;2516:14;;;;2426:112::o;2308:::-;2398:14;;;;2308:112::o;767:94:27:-;842:12;767:94;:::o;9962:1478:17:-;10157:4;10295:18;;:::i;:::-;10499:13;10193:29;;;:16;:29;;;;;:36;10499:13;;10181:48;;;;10177:108;;10252:5;10245:12;;;;10177:108;10316:29;;;;:16;:29;;;;;:39;;;;;;;;;;;;;;;;;;;;10295:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10295:60:17;;;;;;;;;-1:-1:-1;1268:3:17;10295:60;10370:8;:29;;;10366:123;;;10422:56;10432:5;10439:11;10452:4;10458:6;10466:5;10473:4;10422:9;:56::i;:::-;10415:63;;;;10366:123;10551:5;:11;;;-1:-1:-1;;;;;10543:20:17;;-1:-1:-1;1220:3:17;10599:5;:8;:27;;;10595:693;;;10660:5;:11;;;-1:-1:-1;;;;;10650:33:17;;10684:4;10690:6;10698:5;10650:54;;;;;;;;-1:-1:-1;;;10650:54:17;;;;;;-1:-1:-1;;;;;10650:54:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:62;;10711:1;10650:62;;;10707:1;10650:62;10642:70;;;;10739:1;10726:14;;10595:693;;;1076:3;10761:5;:8;:33;;;10757:531;;;10818:8;:6;:8::i;:::-;10810:16;;10757:531;;;1124:3;10847:5;:8;:30;;;10843:445;;;10901:6;:4;:6::i;:::-;10893:14;;;;10843:445;;;1172:3;10928:5;:8;:27;;;10924:364;;;10987:10;-1:-1:-1;;;;;10979:19:17;;-1:-1:-1;10924:364:17;;;1316:3;11019:5;:8;:32;;;11015:273;;;11083:5;:11;;;-1:-1:-1;;;;;11075:20:17;;-1:-1:-1;11015:273:17;;;11142:4;:11;11130:5;:8;:23;;;11126:74;;11180:5;11173:12;;;;11126:74;11237:4;11242:5;:8;11237:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11221:32:17;;-1:-1:-1;11015:273:17;11318:6;11305:5;:8;;;11302:12;;;;;;;;;;:22;;;;;;;;;11298:78;;;11364:1;11355:5;11347:18;11340:25;;;;11298:78;11393:40;11401:5;11411;:8;;;11408:12;;;;;;;;;;11422:10;11393:7;:40::i;:::-;11386:47;;9962:1478;;;;;;;;;;;;:::o;11446:1102::-;11584:4;;;;;;;;;11621:10;11607:6;:9;;;11604:13;;;;;;;;;;:27;;;;;;;;;11600:320;;;11683:39;11708:6;:12;;;-1:-1:-1;;;;;11700:21:17;11683:16;:39::i;:::-;11647:75;;;;;;11750:60;11760:11;11773:9;11784:4;11790:6;11798:5;11805:4;11750:9;:60::i;:::-;11736:74;;11832:77;11842:11;11855:6;:26;;11874:7;11855:26;;;11864:7;11855:26;11883:4;11889:6;11897:5;11904:4;11832:9;:77::i;:::-;11825:84;;;;11600:320;11946:39;11971:6;:12;;;-1:-1:-1;;;;;11963:21:17;11946:16;:39::i;:::-;11930:55;;;;;12005:53;12015:11;12028:2;12032:4;12038:6;12046:5;12053:4;12005:9;:53::i;:::-;11995:63;-1:-1:-1;12090:6:17;12076;:9;;;12073:13;;;;;;;;;;:23;;;;;;;;;12069:64;;;12120:2;12119:3;12112:10;;;;12069:64;12147:2;:28;;;;-1:-1:-1;12170:5:17;12156:6;:9;;;12153:13;;;;;;;;;;:22;;;;;;;;;12147:28;12143:70;;;12198:4;12191:11;;;;12143:70;12228:2;12227:3;:30;;;;-1:-1:-1;12251:6:17;12237;:9;;;12234:13;;;;;;;;;;:23;;;;;;;;;12227:30;12223:73;;;12280:5;12273:12;;;;12223:73;12316:53;12326:11;12339:2;12343:4;12349:6;12357:5;12364:4;12316:9;:53::i;:::-;12306:63;-1:-1:-1;12401:6:17;12387;:9;;;12384:13;;;;;;;;;;:23;;;;;;;;;12380:87;;;12431:2;:9;;;;;12438:2;12437:3;12431:9;12430:26;;;;12447:2;12446:3;:9;;;;;12453:2;12423:33;;;;12380:87;12484:2;12477:9;;11446:1102;;;;;;;;;;;;;;;;;:::o;13896:82::-;13959:15;13896:82;:::o;12554:725::-;12626:4;12653:5;12646:3;:12;;;;;;;;;12642:34;;;-1:-1:-1;12668:8:17;;;12661:15;;12642:34;12756:6;12749:3;:13;;;;;;;;;12745:34;;;-1:-1:-1;12771:8:17;;;;12764:15;;12745:34;12859:5;12852:3;:12;;;;;;;;;12848:33;;;-1:-1:-1;12874:7:17;;;12867:14;;12848:33;12962:5;12955:3;:12;;;;;;;;;12951:33;;;-1:-1:-1;12977:7:17;;;12970:14;;12951:33;13065:6;13058:3;:13;;;;;;;;;13054:34;;;-1:-1:-1;13080:8:17;;;;13073:15;;13054:34;13168:6;13161:3;:13;;;;;;;;;13157:34;;;-1:-1:-1;13183:8:17;;;;13176:15;;13157:34;-1:-1:-1;13267:5:17;12554:725;;;;;:::o;2544:192:18:-;2656:2;2680:13;;;;2715;;;;2544:192::o;231:13878:17:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "1115000", + "executionCost": "1155", + "totalCost": "1116155" + }, + "external": { + "CREATE_PERMISSIONS_ROLE()": "258", + "EMPTY_PARAM_HASH()": "641", + "EVMSCRIPT_REGISTRY_APP()": "661", + "EVMSCRIPT_REGISTRY_APP_ID()": "352", + "appId()": "568", + "canPerform(address,bytes32,uint256[])": "infinite", + "createPermission(address,address,bytes32,address)": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "591", + "getPermissionManager(address,bytes32)": "1302", + "grantPermission(address,address,bytes32)": "infinite", + "grantPermissionP(address,address,bytes32,uint256[])": "infinite", + "hasPermission(address,address,bytes32)": "infinite", + "hasPermission(address,address,bytes32,bytes)": "infinite", + "hasPermission(address,address,bytes32,uint256[])": "infinite", + "initialize(address)": "infinite", + "kernel()": "944", + "permissionParams(bytes32,uint256)": "1185", + "revokePermission(address,address,bytes32)": "infinite", + "setPermissionManager(address,address,bytes32)": "infinite" + }, + "internal": { + "_createPermission(address,address,bytes32,address)": "infinite", + "_saveParams(uint256[] memory)": "infinite", + "_setPermission(address,address,bytes32,bytes32)": "infinite", + "_setPermissionManager(address,address,bytes32)": "infinite", + "blockN()": "infinite", + "compare(uint256,enum ACL.Op,uint256)": "361", + "evalLogic(struct ACL.Param memory,bytes32,address,address,bytes32,uint256[] memory)": "infinite", + "evalParam(bytes32,uint32,address,address,bytes32,uint256[] memory)": "infinite", + "evalParams(bytes32,address,address,bytes32,uint256[] memory)": "infinite", + "permissionHash(address,address,bytes32)": "infinite", + "roleHash(address,bytes32)": "infinite", + "time()": "14" + } + }, + "methodIdentifiers": { + "CREATE_PERMISSIONS_ROLE()": "3d6ab68f", + "EMPTY_PARAM_HASH()": "c513f66e", + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "createPermission(address,address,bytes32,address)": "be038478", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "getPermissionManager(address,bytes32)": "b1905727", + "grantPermission(address,address,bytes32)": "0a8ed3db", + "grantPermissionP(address,address,bytes32,uint256[])": "6815c992", + "hasPermission(address,address,bytes32)": "6d6712d8", + "hasPermission(address,address,bytes32,bytes)": "fdef9106", + "hasPermission(address,address,bytes32,uint256[])": "f520b58d", + "initialize(address)": "c4d66de8", + "kernel()": "d4aae0c4", + "permissionParams(bytes32,uint256)": "710a8315", + "revokePermission(address,address,bytes32)": "9d0effdb", + "setPermissionManager(address,address,bytes32)": "afd925df" + } + }, + "userdoc": { + "methods": { + "createPermission(address,address,bytes32,address)": { + "notice": "Create a new permission granting `_entity` the ability to perform actions of role `_role` on `_app` (setting `_manager` as the permission manager)" + }, + "grantPermission(address,address,bytes32)": { + "notice": "Grants `_entity` the ability to perform actions of role `_role` on `_app`" + }, + "grantPermissionP(address,address,bytes32,uint256[])": { + "notice": "Grants `_entity` the ability to perform actions of role `_role` on `_app`" + }, + "initialize(address)": { + "notice": "Initializes an ACL instance and sets `_permissionsCreator` as the entity that can create other permissions" + }, + "revokePermission(address,address,bytes32)": { + "notice": "Revokes `_entity` the ability to perform actions of role `_role` on `_app`" + }, + "setPermissionManager(address,address,bytes32)": { + "notice": "Sets `_newManager` as the manager of the permission `_role` in `_app`" + } + } + } + }, + "ACLOracle": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + }, + { + "name": "where", + "type": "address" + }, + { + "name": "what", + "type": "bytes32" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "canPerform(address,address,bytes32)": "1a2b6250" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { + "ACLHelpers": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029", + "sourceMap": "2282:456:18:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029", + "sourceMap": "2282:456:18:-;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "10600", + "executionCost": "61", + "totalCost": "10661" + }, + "internal": { + "decodeParamId(uint256)": "infinite", + "decodeParamOp(uint256)": "infinite", + "decodeParamsList(uint256)": "infinite" + } + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + }, + "ACLSyntaxSugar": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029", + "sourceMap": "26:2253:18:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029", + "sourceMap": "26:2253:18:-;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "10600", + "executionCost": "61", + "totalCost": "10661" + }, + "internal": { + "arr()": "infinite", + "arr(address)": "infinite", + "arr(address,address)": "infinite", + "arr(address,address,address)": "infinite", + "arr(address,address,uint256)": "infinite", + "arr(address,address,uint256,uint256,uint256)": "infinite", + "arr(address,uint256)": "infinite", + "arr(address,uint256,uint256)": "infinite", + "arr(bytes32)": "infinite", + "arr(bytes32,bytes32)": "infinite", + "arr(uint256)": "infinite", + "arr(uint256,uint256)": "infinite", + "arr(uint256,uint256,uint256)": "infinite", + "arr(uint256,uint256,uint256,uint256)": "infinite", + "arr(uint256,uint256,uint256,uint256,uint256)": "infinite" + } + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/acl/IACL.sol": { + "IACL": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "permissionsCreator", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + }, + { + "name": "where", + "type": "address" + }, + { + "name": "what", + "type": "bytes32" + }, + { + "name": "how", + "type": "bytes" + } + ], + "name": "hasPermission", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "hasPermission(address,address,bytes32,bytes)": "fdef9106", + "initialize(address)": "c4d66de8" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/apps/AppProxyBase.sol": { + "AppProxyBase": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isUpgradeable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCode", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "appId()": "80afdea8", + "getCode()": "ea879634", + "isUpgradeable()": "daa3a163", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/apps/AppProxyPinned.sol": { + "AppProxyPinned": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isUpgradeable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCode", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029", + "sourceMap": "56:837:21:-;;;385:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:20;576:16;;-1:-1:-1;;;;;;576:16:20;-1:-1:-1;;;;;576:16:20;;;;;-1:-1:-1;602:14:20;;;385:247:21;;;576:16:20;;-1:-1:-1;602:14:20;;385:247:21;;918:17:20;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:20;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:20;;;;;;;;478:847;;;;565:17:21;576:5;;565:10;;;;;:17;;;:::i;:::-;552:10;:30;;-1:-1:-1;;;;;;552:30:21;-1:-1:-1;;;;;552:30:21;;;;;;;;600:10;:24;;592:33;;;;;;385:247;;;56:837;;1331:145:20;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:20;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o;56:837:21:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029", + "sourceMap": "56:837:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:33;864:9;:7;:9::i;:::-;875:8;;851:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;851:12:21;;-1:-1:-1;;;;;851:33:21:i;:::-;56:837;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;113:20:23;;;;;;;;;;;;492:75:42;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:81:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:42;;;;;;;;;;;;638:83:21;;;;;;;;;;;704:10;;;;638:83;:::o;311:628:26:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:23:-;;;;:::o;492:75:42:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:23:-;;;;;;:::o;727:81:21:-;773:4;727:81;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o;1331:145:20:-;1390:7;1416:6;;;;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "287200", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "": "infinite", + "ACL_APP()": "infinite", + "ACL_APP_ID()": "infinite", + "APP_ADDR_NAMESPACE()": "infinite", + "APP_BASES_NAMESPACE()": "infinite", + "CORE_NAMESPACE()": "infinite", + "KERNEL_APP()": "infinite", + "KERNEL_APP_ID()": "infinite", + "appId()": "infinite", + "getCode()": "infinite", + "isUpgradeable()": "infinite", + "kernel()": "infinite" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "appId()": "80afdea8", + "getCode()": "ea879634", + "isUpgradeable()": "daa3a163", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { + "AppProxyUpgradeable": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "pinnedCode", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isUpgradeable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCode", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029", + "sourceMap": "56:722:22:-;;;424:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:20;576:16;;-1:-1:-1;;;;;;576:16:20;-1:-1:-1;;;;;576:16:20;;;;;-1:-1:-1;602:14:20;;;424:170:22;;;576:16:20;;-1:-1:-1;602:14:20;;424:170:22;;918:17:20;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:20;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:20;;;;;;;;478:847;;;;424:170:22;;;56:722;;1331:145:20;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:20;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o;56:722:22:-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029", + "sourceMap": "56:722:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1519:14:20;1536:9;:7;:9::i;:::-;1519:26;-1:-1:-1;1563:11:20;;;;;1555:20;;;;;;1632:30;1645:6;1653:8;;1632:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1632:12:20;;-1:-1:-1;;;;;1632:30:20:i;:::-;1482:187;56:722:22;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;107:25:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58:42;;;;;;;;;;;;113:20:23;;;;;;;;;;;;492:75:42;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:23;;;;;;;;;;;;696:80:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:42;;;;;;;;;;;;600:90:22;;;;;;;;;;;640:7;666:17;677:5;;666:10;:17::i;:::-;659:24;;600:90;:::o;311:628:26:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;107:25:22:-;;;;;;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:23:-;;;;:::o;492:75:42:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:23:-;;;;;;:::o;696:80:22:-;765:4;696:80;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o;1331:145:20:-;1390:7;1416:6;;;;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "304800", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "": "infinite", + "ACL_APP()": "infinite", + "ACL_APP_ID()": "infinite", + "APP_ADDR_NAMESPACE()": "infinite", + "APP_BASES_NAMESPACE()": "infinite", + "CORE_NAMESPACE()": "infinite", + "KERNEL_APP()": "infinite", + "KERNEL_APP_ID()": "infinite", + "appId()": "infinite", + "getCode()": "infinite", + "isUpgradeable()": "infinite", + "kernel()": "infinite", + "pinnedCode()": "infinite" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "appId()": "80afdea8", + "getCode()": "ea879634", + "isUpgradeable()": "daa3a163", + "kernel()": "d4aae0c4", + "pinnedCode()": "3bc7ebac" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/apps/AppStorage.sol": { + "AppStorage": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029", + "sourceMap": "60:317:23:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029", + "sourceMap": "60:317:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;86:21::-;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "49200", + "executionCost": "94", + "totalCost": "49294" + }, + "external": { + "appId()": "373", + "kernel()": "410" + } + }, + "methodIdentifiers": { + "appId()": "80afdea8", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/apps/AragonApp.sol": { + "AragonApp": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029", + "sourceMap": "172:830:24:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029", + "sourceMap": "172:830:24:-;;;;;;;;;-1:-1:-1;;;172:830:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;;;;;;;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;1021:200::-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;172:830:24;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "291600", + "executionCost": "326", + "totalCost": "291926" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "551", + "EVMSCRIPT_REGISTRY_APP_ID()": "308", + "appId()": "458", + "canPerform(address,bytes32,uint256[])": "infinite", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "480", + "kernel()": "699" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/apps/IAppProxy.sol": { + "IAppProxy": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "isUpgradeable", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCode", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "getCode()": "ea879634", + "isUpgradeable()": "daa3a163" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/common/DelegateProxy.sol": { + "DelegateProxy": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029", + "sourceMap": "26:1091:26:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029", + "sourceMap": "26:1091:26:-;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "10600", + "executionCost": "61", + "totalCost": "10661" + }, + "internal": { + "delegatedFwd(address,bytes memory)": "infinite", + "isContract(address)": "infinite" + } + }, + "methodIdentifiers": {} + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/common/Initializable.sol": { + "Initializable": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029", + "sourceMap": "61:802:27:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029", + "sourceMap": "61:802:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;;;;;;;;;;;;;;;;269:107:27;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;269:107:27:-;350:19;;269:107;:::o;86:21:23:-;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "55600", + "executionCost": "100", + "totalCost": "55700" + }, + "external": { + "appId()": "373", + "getInitializationBlock()": "395", + "kernel()": "432" + }, + "internal": { + "getBlockNumber()": "infinite", + "initialized()": "infinite" + } + }, + "methodIdentifiers": { + "appId()": "80afdea8", + "getInitializationBlock()": "8b3dd749", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { + "EVMScriptRegistry": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getScriptExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_executorId", + "type": "uint256" + } + ], + "name": "disableScriptExecutor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_executor", + "type": "address" + } + ], + "name": "addScriptExecutor", + "outputs": [ + { + "name": "id", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_role", + "type": "bytes32" + }, + { + "name": "params", + "type": "uint256[]" + } + ], + "name": "canPerform", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "REGISTRY_MANAGER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "executors", + "outputs": [ + { + "name": "executor", + "type": "address" + }, + { + "name": "enabled", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": { + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029", + "sourceMap": "160:1236:28:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029", + "sourceMap": "160:1236:28:-;;;;;;;;;-1:-1:-1;;;160:1236:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:326:28;;-1:-1:-1;1068:326:28;;-1:-1:-1;;;;;;1068:326:28;;;;-1:-1:-1;;;;;1068:326:28;;;;;;;;;;;;;;;918:144;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;551:184:28;;;;;;;;;;;;741:171;;;;;;;;;;-1:-1:-1;;;;;741:171:28;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;;;;;;;;;;;;;;;;;;365:58:28;;;;;;;;;;;;86:21:23;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;512:32:28;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:28;;;;;;;;;;;;;;;;;;;;;;;1068:326;1131:7;1150:10;1284:27;1163:19;:7;:17;:19::i;:::-;1150:32;;;-1:-1:-1;1197:7:28;;;:33;;-1:-1:-1;1214:9:28;:16;1208:22;;;1197:33;1193:81;;;1261:1;1246:17;;;;1193:81;1314:9;:13;;1324:2;;1314:13;;;;;;;;;;;;;;;1344;;1314;;-1:-1:-1;;;;1344:13:28;;;;:43;;1385:1;1344:43;;;1360:14;;-1:-1:-1;;;;;1360:14:28;1344:43;1337:50;;1068:326;;;;;;:::o;918:144::-;421:1;306:47:24;317:10;421:1:28;350::24;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1050:5:28;1017:9;1027:11;1017:22;;;;;;;;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;1017:38:28;-1:-1:-1;;1017:38:28;;;;;;;;;-1:-1:-1;;918:144:28:o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;551:184:28:-;140:19:27;;:24;132:33;;;;;;599:13:28;:11;:13::i;:::-;680:9;:48;;;;;;:9;:48;;:::i;:::-;;;;;;;;;;695:32;;;;;;;;717:1;695:32;;;;;;;;680:48;-1:-1:-1;695:32:28;680:48;;;-1:-1:-1;;680:48:28;-1:-1:-1;;;;;680:48:28;;;;;;;;;;;;;;;;-1:-1:-1;;;680:48:28;-1:-1:-1;;680:48:28;;;;;;-1:-1:-1;;551:184:28:o;741:171::-;833:7;421:1;306:47:24;317:10;421:1:28;833:7;336:16:24;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;859:9:28;:46;;;;;;:9;:46;;:::i;:::-;;;;;;;;;;874:30;;;;;;;;-1:-1:-1;;;;;874:30:28;;;;-1:-1:-1;874:30:28;;;;;;-1:-1:-1;874:30:28;859:46;;;-1:-1:-1;;859:46:28;-1:-1:-1;;;;;859:46:28;;;;;;;;;;;;;;;;-1:-1:-1;;;859:46:28;-1:-1:-1;;859:46:28;;;;;;-1:-1:-1;852:53:28;;-1:-1:-1;;;741:171:28:o;269:107:27:-;350:19;;269:107;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;365:58:28:-;421:1;365:58;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;512:32:28:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:28;;;-1:-1:-1;;;;512:32:28;;;;;:::o;2452:109:32:-;2509:6;2534:20;2543:7;2552:1;2534:8;:20::i;:::-;2527:27;2452:109;-1:-1:-1;;2452:109:32:o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;3092:355:32:-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;-1:-1:-1;;;3290:66:32;3280:3;;;;3276;;;-1:-1:-1;;;;3252:189:32:o;767:94:27:-;842:12;767:94;:::o;2567:188:32:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:32:o;160:1236:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;160:1236:28;;;-1:-1:-1;160:1236:28;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "540400", + "executionCost": "570", + "totalCost": "540970" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "639", + "EVMSCRIPT_REGISTRY_APP_ID()": "352", + "REGISTRY_MANAGER_ROLE()": "434", + "addScriptExecutor(address)": "infinite", + "appId()": "502", + "canPerform(address,bytes32,uint256[])": "infinite", + "disableScriptExecutor(uint256)": "infinite", + "executors(uint256)": "1266", + "getExecutor(bytes)": "infinite", + "getInitializationBlock()": "569", + "getScriptExecutor(bytes)": "infinite", + "initialize()": "infinite", + "kernel()": "812" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "REGISTRY_MANAGER_ROLE()": "bd8fde1c", + "addScriptExecutor(address)": "87a16f12", + "appId()": "80afdea8", + "canPerform(address,bytes32,uint256[])": "a1658fad", + "disableScriptExecutor(uint256)": "5ca4d4bb", + "executors(uint256)": "f97a05df", + "getExecutor(bytes)": "f92a79ff", + "getInitializationBlock()": "8b3dd749", + "getScriptExecutor(bytes)": "04bf2a7f", + "initialize()": "8129fc1c", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { + "EVMScriptRunner": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_script", + "type": "bytes" + } + ], + "name": "getExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029", + "sourceMap": "162:1806:29:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029", + "sourceMap": "162:1806:29:-;;;;;;;;;-1:-1:-1;;;162:1806:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;158:103:31;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;86:21:23:-;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;:39;;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;1021:200::-;1075:18;1128:6;;1075:18;;1128:6;;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "201600", + "executionCost": "240", + "totalCost": "201840" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "529", + "EVMSCRIPT_REGISTRY_APP_ID()": "308", + "appId()": "458", + "getExecutor(bytes)": "infinite", + "kernel()": "517" + }, + "internal": { + "getExecutorRegistry()": "infinite", + "returnedDataDecoded()": "infinite", + "runScript(bytes memory,bytes memory,address[] memory)": "infinite" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "appId()": "80afdea8", + "getExecutor(bytes)": "f92a79ff", + "kernel()": "d4aae0c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { + "IEVMScriptExecutor": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "script", + "type": "bytes" + }, + { + "name": "input", + "type": "bytes" + }, + { + "name": "blacklist", + "type": "address[]" + } + ], + "name": "execScript", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "execScript(bytes,bytes,address[])": "279cea35" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { + "EVMScriptRegistryConstants": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029", + "sourceMap": "26:238:31:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029", + "sourceMap": "26:238:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103;;;;;;;;;;;;68:84;120:32;;;;;;;;;;;;;;68:84;:::o;158:103::-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "71200", + "executionCost": "118", + "totalCost": "71318" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "444", + "EVMSCRIPT_REGISTRY_APP_ID()": "245" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057" + } + }, + "userdoc": { + "methods": {} + } + }, + "IEVMScriptRegistry": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "script", + "type": "bytes" + } + ], + "name": "getScriptExecutor", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "executorId", + "type": "uint256" + } + ], + "name": "disableScriptExecutor", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "executor", + "type": "address" + } + ], + "name": "addScriptExecutor", + "outputs": [ + { + "name": "id", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "addScriptExecutor(address)": "87a16f12", + "disableScriptExecutor(uint256)": "5ca4d4bb", + "getScriptExecutor(bytes)": "04bf2a7f" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { + "ScriptHelpers": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_dest", + "type": "uint256" + }, + { + "name": "_src", + "type": "uint256" + }, + { + "name": "_len", + "type": "uint256" + } + ], + "name": "memcpy", + "outputs": [], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_a", + "type": "bytes" + }, + { + "name": "_b", + "type": "bytes" + }, + { + "name": "_c", + "type": "address[]" + } + ], + "name": "abiEncode", + "outputs": [ + { + "name": "d", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029", + "sourceMap": "26:4554:32:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029", + "sourceMap": "26:4554:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638;;;;;;;;;;;;597:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;597:125:32;;-1:-1:-1;597:125:32;;-1:-1:-1;;;;;;597:125:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638:32;4026:4;4055:5;4084:4;4012:11;4149:165;4163:2;4156:9;;4149:165;;4238:3;4232:5;4219:6;;4278:2;4294:9;;;;4270:10;;;;-1:-1:-1;;4167:9:32;;;;4149:165;;;4388:1;4381:3;4376:2;:8;4368:3;:17;:21;4356:33;;4457:4;4453:3;4447;4441:5;4437:3;4509:4;4502;4496:5;4492:3;4540:2;4527:6;;;-1:-1:-1;;;;;;4408:164:32:o;597:125::-;671:7;;:::i;:::-;697:18;704:2;708;712;697:6;:18::i;:::-;690:25;597:125;-1:-1:-1;;;;597:125:32:o;728:830::-;822:14;;:::i;:::-;922:4;902:17;;;973:13;983:2;973:9;:13::i;:::-;968:2;:18;956:9;:30;936:50;;1033:13;1043:2;1033:9;:13::i;:::-;1028:2;:18;1016:9;:30;996:50;;1090:13;1100:2;1090:9;:13::i;:::-;1085:2;:18;1073:9;:30;1056:47;;1128:6;1118:17;;;;;;;;;;;;;-1:-1:-1;;1118:17:32;;;;;;;;;;;;1114:21;;1220:9;1213:4;1210:1;1206:3;1199:6;1264:9;1257:4;1254:1;1250:3;1243:6;1308:9;1301:4;1298:1;1294:3;1287:6;1381:41;1386:1;1389:10;1396:2;1389:6;:10::i;:::-;1401:9;1412:2;:9;1381:4;:41::i;:::-;1432;1437:1;1440:10;1447:2;1440:6;:10::i;:::-;1452:9;1463:2;:9;1432:4;:41::i;:::-;1483:46;1488:1;1491:10;1498:2;1491:6;:10::i;:::-;1503:9;1514:2;:9;1526:2;1514:14;1483:4;:46::i;:::-;728:830;;;;;;;;;:::o;1564:236::-;1623:7;1783:1;1778:2;1766;:9;:14;;;;;;;;:18;:26;;1791:1;1766:26;;;1787:1;1766:26;1742:51;;1759:2;1747;:9;:14;;;;;;;;1742:51;:1;:51;;1564:236;-1:-1:-1;;1564:236:32:o;1806:139::-;1862:7;1929:2;:9;1925:1;:13;;1806:139;-1:-1:-1;;1806:139:32:o;2182:127::-;2291:2;2270:33::o;1951:225::-;2044:9;2113:4;2106;2102:2;2098:3;2094;2086:32;;2137;2144:4;2150;2156:7;2166:2;2156:12;2137:6;:32::i;:::-;1951:225;;;;;:::o;26:4554::-;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "176200", + "executionCost": "215", + "totalCost": "176415" + }, + "external": { + "abiEncode(bytes,bytes,address[])": "infinite", + "memcpy(uint256,uint256,uint256)": "infinite" + }, + "internal": { + "abiLength(address[] memory)": "infinite", + "abiLength(bytes memory)": "infinite", + "addressAt(bytes memory,uint256)": "infinite", + "copy(bytes memory,uint256,uint256,uint256)": "infinite", + "encode(bytes memory,bytes memory,address[] memory)": "infinite", + "getPtr(address[] memory)": "infinite", + "getPtr(bytes memory)": "12", + "getSpecId(bytes memory)": "infinite", + "locationOf(bytes memory,uint256)": "infinite", + "toBytes(bytes4)": "infinite", + "uint256At(bytes memory,uint256)": "infinite", + "uint32At(bytes memory,uint256)": "infinite" + } + }, + "methodIdentifiers": { + "abiEncode(bytes,bytes,address[])": "137d7026", + "memcpy(uint256,uint256,uint256)": "11fe773d" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { + "CallsScript": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_script", + "type": "bytes" + }, + { + "name": "_input", + "type": "bytes" + }, + { + "name": "_blacklist", + "type": "address[]" + } + ], + "name": "execScript", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "name": "src", + "type": "address" + }, + { + "indexed": true, + "name": "dst", + "type": "address" + } + ], + "name": "LogScriptCall", + "type": "event" + } + ], + "devdoc": { + "methods": { + "execScript(bytes,bytes,address[])": { + "params": { + "_blacklist": "Addresses the script cannot call to, or will revert.", + "_input": "Input is ignored in callscript", + "_script": "[ specId (uint32) ] many calls with this structure -> [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]" + }, + "return": "always returns empty byte array" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029", + "sourceMap": "152:1785:33:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029", + "sourceMap": "152:1785:33:-;;;;;;;;;;;;;;;;;;;;;;;808:1127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:1127:33;897:5;;:::i;:::-;287:1;914:16;;;;993:936;1000:25;;;993:936;;;1067:27;1085:8;1067:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1067:17:33;;:27;-1:-1:-1;;1067:27:33;:17;:27;;-1:-1:-1;;;1067:27:33:i;:::-;1041:53;;1181:1;1172:10;;1167:119;1184:21;;;1167:119;;;1257:10;;1268:1;1257:13;;;;;;;;;;;;;;-1:-1:-1;1257:13:33;;;1238:32;;;;;;-1:-1:-1;1230:41:33;;;;;;1207:3;;;;;1167:119;;;-1:-1:-1;1440:57:33;;;;1474:4;1440:57;;;1454:10;1440:57;;;;;;;;;;;1545:33;1562:8;1573:4;1562:15;1545:7;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:16:33;;:33;-1:-1:-1;;1545:33:33;:16;:33;;-1:-1:-1;;;1545:33:33:i;:::-;1537:42;;;-1:-1:-1;1617:42:33;1636:22;;;1617:7;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1617:18:33;;:42;-1:-1:-1;;1617:42:33;:18;:42;;-1:-1:-1;;;1617:42:33:i;:::-;1593:66;;1791:1;1788;1772:14;1757:13;1754:1;1737:15;1730:4;1725:3;1721;1716:4;1817:7;1825:23;;;;-1:-1:-1;;1876:42:33;;;1889:11;1876:42;;993:936;;;808:1127;;;;;;;;;;;;;:::o;2761:325:32:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:32;;;2947;;2923:157;-1:-1:-1;;;;2923:157:32:o;3092:355::-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;3371:59;3290:66;3280:3;;;3276;;3252:189;-1:-1:-1;;;;3252:189:32:o;3453:182::-;3587:3;3602:4;3587:3;;3563:66::o;2567:188::-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:32:o;152:1785:33:-;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "183000", + "executionCost": "221", + "totalCost": "183221" + }, + "external": { + "execScript(bytes,bytes,address[])": "infinite" + } + }, + "methodIdentifiers": { + "execScript(bytes,bytes,address[])": "279cea35" + } + }, + "userdoc": { + "methods": { + "execScript(bytes,bytes,address[])": { + "notice": "Executes a number of call scripts" + } + } + } + } + }, + "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { + "DelegateScript": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_script", + "type": "bytes" + }, + { + "name": "_input", + "type": "bytes" + }, + { + "name": "_blacklist", + "type": "address[]" + } + ], + "name": "execScript", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": { + "execScript(bytes,bytes,address[])": { + "params": { + "_blacklist": "If any address is passed, will revert.", + "_input": "ABI encoded call to be made to contract (if empty executes default exec() function)", + "_script": "[ specId (uint32) ][ contract address (20 bytes) ]" + }, + "return": "Call return data" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029", + "sourceMap": "159:1973:34:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029", + "sourceMap": "159:1973:34:-;;;;;;;;;;;;;;;;;;;;;;;648:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;648:387:34;737:5;;:::i;:::-;762:22;;754:31;;;;;;926:26;908:44;;900:53;;;;;;970:58;979:40;293:1;979:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;979:17:34;;:40;-1:-1:-1;;979:40:34;:17;:40;;-1:-1:-1;;;979:40:34:i;:::-;1021:6;;970:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;970:8:34;;-1:-1:-1;;;;;970:58:34:i;:::-;963:65;648:387;-1:-1:-1;;;;;;;648:387:34:o;2761:325:32:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:32;;;2947;;2923:157;-1:-1:-1;;;;2923:157:32:o;1108:249:34:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:34;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:34:o;2567:188:32:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:32:o;1363:170:34:-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:34;:::o;3641:293:32:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:32;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:32;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:32;-1:-1:-1;;3811:9:32;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:32;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:32;-1:-1:-1;;3851:10:32;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:32;-1:-1:-1;;3892:10:32;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:32;3641:293;-1:-1:-1;;3641:293:32:o;159:1973:34:-;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "234000", + "executionCost": "270", + "totalCost": "234270" + }, + "external": { + "execScript(bytes,bytes,address[])": "infinite" + }, + "internal": { + "defaultInput()": "infinite", + "delegate(address,bytes memory)": "infinite", + "isContract(address)": "721", + "returnedData()": "infinite" + } + }, + "methodIdentifiers": { + "execScript(bytes,bytes,address[])": "279cea35" + } + }, + "userdoc": { + "methods": { + "execScript(bytes,bytes,address[])": { + "notice": "Executes script by delegatecall into a contract" + } + } + } + }, + "DelegateScriptTarget": { + "abi": [ + { + "constant": false, + "inputs": [], + "name": "exec", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "exec()": "c1c0e9c4" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { + "DeployDelegateScript": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_script", + "type": "bytes" + }, + { + "name": "_input", + "type": "bytes" + }, + { + "name": "_blacklist", + "type": "address[]" + } + ], + "name": "execScript", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "methods": { + "execScript(bytes,bytes,address[])": { + "params": { + "_blacklist": "If any address is passed, will revert.", + "_input": "ABI encoded call to be made to contract (if empty executes default exec() function)", + "_script": "[ specId (uint32) ][ contractInitcode (bytecode) ]" + }, + "return": "Call return data" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", + "sourceMap": "137:1475:35:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", + "sourceMap": "137:1475:35:-;;;;;;;;;;;;;;;;;;;;;;;664:452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;664:452:35;753:5;;:::i;:::-;859:10;;778:22;;770:31;;;;;;882:7;;872:18;;;;;;;;;;;;;;;;;;;;;;;;;;919:5;:9;;;;;;;;;;;872:18;;-1:-1:-1;919:9:35;;;-1:-1:-1;942:22:35;;938:113;;;991:15;998:7;;991:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;991:6:35;;-1:-1:-1;;;;;991:15:35:i;:::-;1020:5;:9;;;;;;;;;;:20;;-1:-1:-1;;1020:20:35;;;;;;;;-1:-1:-1;938:113:35;1068:41;1092:8;1102:6;;1068:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:23:35;;-1:-1:-1;;;;;1068:41:35:i;:::-;1061:48;664:452;-1:-1:-1;;;;;;;;;664:452:35:o;1186:424::-;1235:12;1469:4;1459:7;1453:5;1449:3;1442:4;1433:7;1429:3;1426:1;1419:6;1411:64;;1514:4;1502:11;1495:6;1538:1;1533:23;;;;1488:68;1268:336;;;:::o;1108:249:34:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:34;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:34:o;1363:170::-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:34;:::o;3641:293:32:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:32;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:32;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:32;-1:-1:-1;;3811:9:32;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:32;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:32;-1:-1:-1;;3851:10:32;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:32;-1:-1:-1;;3892:10:32;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:32;3641:293;-1:-1:-1;;3641:293:32:o;137:1475:35:-;;;;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "252600", + "executionCost": "289", + "totalCost": "252889" + }, + "external": { + "execScript(bytes,bytes,address[])": "infinite" + }, + "internal": { + "deploy(bytes memory)": "infinite" + } + }, + "methodIdentifiers": { + "execScript(bytes,bytes,address[])": "279cea35" + } + }, + "userdoc": { + "methods": { + "execScript(bytes,bytes,address[])": { + "notice": "Executes script by delegatecall into a deployed contract (exec() function)" + } + } + } + } + }, + "@aragon/os/contracts/factory/AppProxyFactory.sol": { + "AppProxyFactory": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "name": "newAppProxyPinned", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + } + ], + "name": "newAppProxy", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "name": "newAppProxy", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + } + ], + "name": "newAppProxyPinned", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "proxy", + "type": "address" + } + ], + "name": "NewAppProxy", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b61134b8061001e6000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029", + "sourceMap": "106:964:36:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029", + "sourceMap": "106:964:36:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:272;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:36;;-1:-1:-1;796:272:36;;-1:-1:-1;;;;;;796:272:36;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:36;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:36;;-1:-1:-1;339:281:36;;-1:-1:-1;;;;;;339:281:36;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:36;;;;;;;796:272;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:36;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:36;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:36:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:36;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:36:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:36;;;;;;;;;;;;735:17;:48::i;106:964::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "987800", + "executionCost": "1022", + "totalCost": "988822" + }, + "external": { + "newAppProxy(address,bytes32)": "infinite", + "newAppProxy(address,bytes32,bytes)": "infinite", + "newAppProxyPinned(address,bytes32)": "infinite", + "newAppProxyPinned(address,bytes32,bytes)": "infinite" + } + }, + "methodIdentifiers": { + "newAppProxy(address,bytes32)": "e156a8f3", + "newAppProxy(address,bytes32,bytes)": "ede658b0", + "newAppProxyPinned(address,bytes32)": "ff289fc5", + "newAppProxyPinned(address,bytes32,bytes)": "d162f8b0" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/factory/DAOFactory.sol": { + "DAOFactory": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "baseACL", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_root", + "type": "address" + } + ], + "name": "newDAO", + "outputs": [ + { + "name": "dao", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "regFactory", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "baseKernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_regFactory", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "dao", + "type": "address" + } + ], + "name": "DeployDAO", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "reg", + "type": "address" + } + ], + "name": "DeployEVMScriptRegistry", + "type": "event" + } + ], + "devdoc": { + "methods": { + "newDAO(address)": { + "params": { + "_root": "Address that will be granted control to setup DAO permissions" + } + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b60405160208061439683398101604052808051915061002e90506100c7565b604051809103906000f080151561004457600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561006c6100d7565b604051809103906000f080151561008257600080fd5b60018054600160a060020a031916600160a060020a039283161790558116156100c15760028054600160a060020a031916600160a060020a0383161790555b506100e7565b604051611fdc80610dd583390190565b6040516115e580612db183390190565b610cdf806100f66000396000f3006060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca1200296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", + "sourceMap": "162:1647:37:-;;;379:316;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;521:12:37;;-1:-1:-1;521:12:37;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:37;-1:-1:-1;;;;;500:34:37;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:37;-1:-1:-1;;;;;544:28:37;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:37;-1:-1:-1;;;;;628:50:37;;;;;583:106;379:316;162:1647;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca120029", + "sourceMap": "162:1647:37:-;;;;;;;;;-1:-1:-1;;;162:1647:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:37;;;;;;;;;;;;;;797:1010;;;;;;;;;;-1:-1:-1;;;;;797:1010:37;;;;;247:42;;;;;;;;;;;;188:25;;;;;;;;;;;;219:22;;;-1:-1:-1;;;;;219:22:37;;:::o;797:1010::-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:37;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:37;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:37;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:37;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:37;;;;;;-1:-1:-1;;;;;998:36:37;;;;;;;;;;;;;;;-1:-1:-1;998:36:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:37;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:37;1084:33;;-1:-1:-1;1080:696:37;;1152:3;-1:-1:-1;;;;;1152:27:37;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:37;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:37;;;;-1:-1:-1;1257:19:37;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:37;;;;;;-1:-1:-1;;;;;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:37;;-1:-1:-1;;;;;1318:20:37;;;;-1:-1:-1;1318:20:37;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:37;;;;;;-1:-1:-1;;;;;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:37;;-1:-1:-1;;;;;1416:10:37;;-1:-1:-1;1416:31:37;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:37;;;;;;-1:-1:-1;;;;;1416:43:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:37;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:37;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:37;;;;;;-1:-1:-1;;;;;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:37;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:37;;;;;;-1:-1:-1;;;;;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:37;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:37;;;;;;-1:-1:-1;;;;;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:37;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:37;;;;;;-1:-1:-1;;;;;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:37;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;247:42::-;;;-1:-1:-1;;;;;247:42:37;;:::o;188:25::-;;;-1:-1:-1;;;;;188:25:37;;:::o;162:1647::-;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "659000", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "baseACL()": "589", + "baseKernel()": "655", + "newDAO(address)": "infinite", + "regFactory()": "633" + } + }, + "methodIdentifiers": { + "baseACL()": "086b339e", + "baseKernel()": "b16dd130", + "newDAO(address)": "21687444", + "regFactory()": "656362b5" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { + "EVMScriptRegistryFactory": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "baseReg", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "baseDeployDel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_dao", + "type": "address" + }, + { + "name": "_root", + "type": "address" + } + ], + "name": "newEVMScriptRegistry", + "outputs": [ + { + "name": "reg", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EVMSCRIPT_REGISTRY_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "baseCalls", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "name": "newAppProxyPinned", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + } + ], + "name": "newAppProxy", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "baseDel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "name": "newAppProxy", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + } + ], + "name": "newAppProxyPinned", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "proxy", + "type": "address" + } + ], + "name": "NewAppProxy", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b61001761010c565b604051809103906000f080151561002d57600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561005561011d565b604051809103906000f080151561006b57600080fd5b60018054600160a060020a031916600160a060020a039290921691909117905561009361012e565b604051809103906000f08015156100a957600080fd5b60028054600160a060020a031916600160a060020a03929092169190911790556100d161013f565b604051809103906000f08015156100e757600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055610150565b604051610aac8062001cb983390190565b6040516103b1806200276583390190565b6040516104b08062002b1683390190565b60405161050d8062002fc683390190565b611b5980620001606000396000f3006060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e972200296060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a9949417665585108200296060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb900296060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd442541100296060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", + "sourceMap": "321:1285:38:-;;;529:260;;;;;;;;600:23;;:::i;:::-;;;;;;;;;;;;;;;;;;582:7;:42;;-1:-1:-1;;;;;;582:42:38;-1:-1:-1;;;;;582:42:38;;;;;;;;;;654:17;;:::i;:::-;;;;;;;;;;;;;;;;;;634:9;:38;;-1:-1:-1;;;;;;634:38:38;-1:-1:-1;;;;;634:38:38;;;;;;;;;;700:20;;:::i;:::-;;;;;;;;;;;;;;;;;;682:7;:39;;-1:-1:-1;;;;;;682:39:38;-1:-1:-1;;;;;682:39:38;;;;;;;;;;755:26;;:::i;:::-;;;;;;;;;;;;;;;;;;731:13;:51;;-1:-1:-1;;;;;;731:51:38;-1:-1:-1;;;;;731:51:38;;;;;;;;;;321:1285;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e97220029", + "sourceMap": "321:1285:38:-;;;;;;;;;-1:-1:-1;;;321:1285:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;408:22:38;;;;;;;;;;;;;;494:28;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;795:809:38;;;;;;;;;;-1:-1:-1;;;;;795:809:38;;;;;;;;;;158:103:31;;;;;;;;;;;;436:24:38;;;;;;;;;;;;796:272:36;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:36;;-1:-1:-1;796:272:36;;-1:-1:-1;;;;;;796:272:36;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:36;;;;;;;466:22:38;;;;;;;;;;;;339:281:36;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:36;;-1:-1:-1;339:281:36;;-1:-1:-1;;;;;;339:281:36;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:36;;;;;;;408:22:38;;;-1:-1:-1;;;;;408:22:38;;:::o;494:28::-;;;-1:-1:-1;;;;;494:28:38;;:::o;68:84:31:-;120:32;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;68:84;:::o;795:809:38:-;869:21;1025:7;926:4;-1:-1:-1;;;;;926:25:38;;120:32:31;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;;979:7:38;;;-1:-1:-1;;;;;979:7:38;;926:61;;;;;;;-1:-1:-1;;;926:61:38;;;;;;;;;;;;;-1:-1:-1;;;;;926:61:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;998:14:38;;;:16;;;;;-1:-1:-1;;;998:16:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:4;-1:-1:-1;;;;;1039:8:38;;:10;;;;;;;;;;;-1:-1:-1;;;1039:10:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1061:11:38;;;;1073:23;:25;;;;;;;;;;;-1:-1:-1;;;1073:25:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:32:31;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;1127:3:38;1061:70;;;;;;;;-1:-1:-1;;;1061:70:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:70:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:3;-1:-1:-1;;;;;1141:20:38;;1162:4;1168:3;1173;-1:-1:-1;;;;;1173:25:38;;:27;;;;;;;;;;;-1:-1:-1;;;1173:27:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1202:4;1141:66;;-1:-1:-1;;;1141:66:38;;;;;;-1:-1:-1;;;;;1141:66:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1141:66:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1240:9:38;;-1:-1:-1;;;;;1218:21:38;;;;-1:-1:-1;1218:21:38;;1240:9;;1218:32;;;;;;;-1:-1:-1;;;1218:32:38;;;;;;-1:-1:-1;;;;;1218:32:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1310:7:38;;-1:-1:-1;;;;;1288:21:38;;;;;;1310:7;;1288:30;;;;;;;-1:-1:-1;;;1288:30:38;;;;;;-1:-1:-1;;;;;1288:30:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1383:13:38;;-1:-1:-1;;;;;1361:21:38;;;;;;1383:13;;1361:36;;;;;;;-1:-1:-1;;;1361:36:38;;;;;;-1:-1:-1;;;;;1361:36:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:3;-1:-1:-1;;;;;1441:20:38;;1462:4;1468:3;1473;-1:-1:-1;;;;;1473:25:38;;:27;;;;;;;;;;;-1:-1:-1;;;1473:27:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:60;;-1:-1:-1;;;1441:60:38;;;;;;-1:-1:-1;;;;;1441:60:38;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1441:60:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:3;-1:-1:-1;;;;;1511:24:38;;1536:5;1543:3;1548;-1:-1:-1;;;;;1548:25:38;;:27;;;;;;;;;;;-1:-1:-1;;;1548:27:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:65;;-1:-1:-1;;;1511:65:38;;;;;;-1:-1:-1;;;;;1511:65:38;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1511:65:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;795:809:38;;;;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;436:24:38:-;;;-1:-1:-1;;;;;436:24:38;;:::o;796:272:36:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:36;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:36;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:36:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:36;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:36:o;466:22:38:-;;;-1:-1:-1;;;;;466:22:38;;:::o;339:281:36:-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:36;;;;;;;;;;;;735:17;:48::i;321:1285:38:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "1400200", + "executionCost": "infinite", + "totalCost": "infinite" + }, + "external": { + "EVMSCRIPT_REGISTRY_APP()": "infinite", + "EVMSCRIPT_REGISTRY_APP_ID()": "infinite", + "baseCalls()": "699", + "baseDel()": "765", + "baseDeployDel()": "611", + "baseReg()": "589", + "newAppProxy(address,bytes32)": "infinite", + "newAppProxy(address,bytes32,bytes)": "infinite", + "newAppProxyPinned(address,bytes32)": "infinite", + "newAppProxyPinned(address,bytes32,bytes)": "infinite", + "newEVMScriptRegistry(address,address)": "infinite" + } + }, + "methodIdentifiers": { + "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", + "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", + "baseCalls()": "af9a21bc", + "baseDel()": "e602e712", + "baseDeployDel()": "1b380940", + "baseReg()": "127d679c", + "newAppProxy(address,bytes32)": "e156a8f3", + "newAppProxy(address,bytes32,bytes)": "ede658b0", + "newAppProxyPinned(address,bytes32)": "ff289fc5", + "newAppProxyPinned(address,bytes32,bytes)": "d162f8b0", + "newEVMScriptRegistry(address,address)": "869abc24" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/kernel/IKernel.sol": { + "IKernel": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "id", + "type": "bytes32" + } + ], + "name": "getApp", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "namespace", + "type": "bytes32" + }, + { + "name": "name", + "type": "bytes32" + }, + { + "name": "app", + "type": "address" + } + ], + "name": "setApp", + "outputs": [ + { + "name": "id", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "acl", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + }, + { + "name": "where", + "type": "address" + }, + { + "name": "what", + "type": "bytes32" + }, + { + "name": "how", + "type": "bytes" + } + ], + "name": "hasPermission", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "namespace", + "type": "bytes32" + }, + { + "indexed": true, + "name": "name", + "type": "bytes32" + }, + { + "indexed": true, + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "name": "app", + "type": "address" + } + ], + "name": "SetApp", + "type": "event" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "acl()": "de287359", + "getApp(bytes32)": "42c71f1d", + "hasPermission(address,address,bytes32,bytes)": "fdef9106", + "setApp(bytes32,bytes32,address)": "ae5b2540" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/kernel/Kernel.sol": { + "Kernel": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "name": "apps", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_id", + "type": "bytes32" + } + ], + "name": "getApp", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_baseAcl", + "type": "address" + }, + { + "name": "_permissionsCreator", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "appId", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_name", + "type": "bytes32" + }, + { + "name": "_appBase", + "type": "address" + } + ], + "name": "newAppInstance", + "outputs": [ + { + "name": "appProxy", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getInitializationBlock", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_MANAGER_ROLE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_name", + "type": "bytes32" + }, + { + "name": "_appBase", + "type": "address" + } + ], + "name": "newPinnedAppInstance", + "outputs": [ + { + "name": "appProxy", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_namespace", + "type": "bytes32" + }, + { + "name": "_name", + "type": "bytes32" + }, + { + "name": "_app", + "type": "address" + } + ], + "name": "setApp", + "outputs": [ + { + "name": "id", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "name": "newAppProxyPinned", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "kernel", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "acl", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + } + ], + "name": "newAppProxy", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + }, + { + "name": "_initializePayload", + "type": "bytes" + } + ], + "name": "newAppProxy", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_who", + "type": "address" + }, + { + "name": "_where", + "type": "address" + }, + { + "name": "_what", + "type": "bytes32" + }, + { + "name": "_how", + "type": "bytes" + } + ], + "name": "hasPermission", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_kernel", + "type": "address" + }, + { + "name": "_appId", + "type": "bytes32" + } + ], + "name": "newAppProxyPinned", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "proxy", + "type": "address" + } + ], + "name": "NewAppProxy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "namespace", + "type": "bytes32" + }, + { + "indexed": true, + "name": "name", + "type": "bytes32" + }, + { + "indexed": true, + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "name": "app", + "type": "address" + } + ], + "name": "SetApp", + "type": "event" + } + ], + "devdoc": { + "methods": { + "acl()": { + "details": "Get the installed ACL app", + "return": "ACL app" + }, + "getApp(bytes32)": { + "details": "Get the address of an app instance or base implementation", + "params": { + "_id": "App identifier" + }, + "return": "Address of the app" + }, + "getInitializationBlock()": { + "return": "Block number in which the contract was initialized" + }, + "hasPermission(address,address,bytes32,bytes)": { + "details": "Function called by apps to check ACL on kernel or to check permission status", + "params": { + "_how": "Extra data for ACL auth", + "_what": "Identifier for a group of actions in app", + "_where": "Address of the app", + "_who": "Sender of the original call" + }, + "return": "boolean indicating whether the ACL allows the role or not" + }, + "initialize(address,address)": { + "details": "Initialize can only be called once. It saves the block number in which it was initialized.", + "params": { + "_baseAcl": "Address of base ACL app", + "_permissionsCreator": "Entity that will be given permission over createPermission" + } + }, + "newAppInstance(bytes32,address)": { + "details": "Create a new instance of an app linked to this kernel and set its base implementation if it was not already set", + "params": { + "_appBase": "Address of the app's base implementation", + "_name": "Name of the app" + }, + "return": "AppProxy instance" + }, + "newPinnedAppInstance(bytes32,address)": { + "details": "Create a new pinned instance of an app linked to this kernel and set its base implementation if it was not already set", + "params": { + "_appBase": "Address of the app's base implementation", + "_name": "Name of the app" + }, + "return": "AppProxy instance" + }, + "setApp(bytes32,bytes32,address)": { + "details": "Set the resolving address of an app instance or base implementation", + "params": { + "_app": "Address of the app", + "_name": "Name of the app", + "_namespace": "App namespace to use" + }, + "return": "ID of app" + } + } + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029", + "sourceMap": "228:4676:40:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029", + "sourceMap": "228:4676:40:-;;;;;;;;;-1:-1:-1;;;228:4676:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:42;;;;;;;;;;;;;;;2831:92:40;;;;;;;;;;;;;;781:331;;;;;;;;;;-1:-1:-1;;;;;781:331:40;;;;;;;;;;;;57:58:42;;;;;;;;;;;;113:20:23;;;;;;;;;;;;1397:261:40;;;;;;;;;;;;-1:-1:-1;;;;;1397:261:40;;;;;269:107:27;;;;;;;;;;;;324:53:40;;;;;;;;;;;;1950:273;;;;;;;;;;;;-1:-1:-1;;;;;1950:273:40;;;;;492:75:42;;;;;;;;;;;;2464:212:40;;;;;;;;;;;;;;-1:-1:-1;;;;;2464:212:40;;;;;420:66:42;;;;;;;;;;;;796:272:36;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:36;;-1:-1:-1;796:272:36;;-1:-1:-1;;;;;;796:272:36;86:21:23;;;;;;;;;;;;121:63:42;;;;;;;;;;;;3003:87:40;;;;;;;;;;;;176:157:36;;;;;;;;;;-1:-1:-1;;;;;176:157:36;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:36;;-1:-1:-1;339:281:36;;-1:-1:-1;;;;;;339:281:36;3458:177:40;;;;;;;;;;-1:-1:-1;;;;;3458:177:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3458:177:40;;-1:-1:-1;3458:177:40;;-1:-1:-1;;;;;;3458:177:40;;;;;;;;;;;;;;;;;;626:164:36;;;;;;;;;;-1:-1:-1;;;;;626:164:36;;;;;;;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:42;;:::o;2831:92:40:-;2881:7;2907:9;;;;;;;;;;;-1:-1:-1;;;;;2907:9:40;;2831:92::o;781:331::-;140:19:27;;898:8:40;;140:24:27;132:33;;;;;;874:13:40;:11;:13::i;:::-;914:29;926:4;457:29:42;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;914:11:40;:29::i;:::-;898:46;;955:50;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;996:8:40;955:7;:50::i;:::-;;1015:44;235:16:42;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;1055:3:40;1015:7;:44::i;:::-;-1:-1:-1;;;;;;1070:14:40;;;1085:19;1070:35;;-1:-1:-1;;;1070:35:40;;;;;;-1:-1:-1;;;;;1070:35:40;;;;;;;;;;-1:-1:-1;1070:35:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:331;;;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:23:-;;;;:::o;1397:261:40:-;1526:18;375:1;1477:31;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;1502:5:40;1477:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;1556:50;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;1590:5:40;1597:8;1556:12;:50::i;:::-;;1627:24;1639:4;1645:5;1627:11;:24::i;:::-;1616:35;1397:261;-1:-1:-1;;;;;;;1397:261:40:o;269:107:27:-;350:19;;269:107;:::o;324:53:40:-;375:1;324:53;:::o;1950:273::-;2085:18;375:1;2036:31;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;2061:5:40;2036:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;2115:50;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;2149:5:40;2156:8;2115:12;:50::i;:::-;;2186:30;2204:4;2210:5;2186:17;:30::i;492:75:42:-;235:16;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;2464:212:40:-;2608:10;375:1;2552:22;2556:10;2568:5;2552:3;:22::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;4762:14;4807:12;2637:32;2645:10;2657:5;2664:4;2637:7;:32::i;:::-;2630:39;;4779:18;98:17:42;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;4779:6:40;:18::i;:::-;4762:35;-1:-1:-1;;4848:11:40;;4893:1;4886:8;;4878:17;;;;;;4667:1;;2464:212;;;;;;;;;:::o;420:66:42:-;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;420:66;:::o;796:272:36:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:36;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:36;;;;;;;;;;;;;;;1056:5;1049:12;;796:272;;;;;;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;121:63:42:-;167:17;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;121:63;:::o;3003:87:40:-;3039:4;3067:15;235:16:42;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;3067:6:40;:15::i;:::-;3055:28;;3003:87;:::o;176:157:36:-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:36;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:36:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;3458:177:40:-;3559:4;3582:5;:3;:5::i;:::-;-1:-1:-1;;;;;3582:19:40;;3602:4;3608:6;3616:5;3623:4;3582:46;;;;;;;;-1:-1:-1;;;3582:46:40;;;;;;-1:-1:-1;;;;;3582:46:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3458:177:40;-1:-1:-1;;;;;;3458:177:40:o;626:164:36:-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:36;;;;;;;;;;;;735:17;:48::i;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;3641:216:40:-;3725:10;3762;3774:5;3752:28;;;;;;;;;;;;;;;;;;;;;3790:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;3790:15:40;-1:-1:-1;;;;;3790:15:40;;;;;3752:28;;-1:-1:-1;3752:28:40;;3834:5;;3822:10;;3815:35;;3790:15;;3815:35;-1:-1:-1;;;;;3815:35:40;;;;;;;;;;;;;;;3641:216;;;;;:::o;222:126:18:-;282:11;;:::i;:::-;312:29;324:2;337;312:3;:29::i;3863:430:40:-;3952:10;4056:11;3989:10;4001:5;3979:28;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4022:18:40;;;4018:269;;4070:10;4077:2;4070:6;:10::i;:::-;4056:24;-1:-1:-1;;;;;;4098:17:40;;;4094:183;;-1:-1:-1;;;;;4143:11:40;;;;;;;4135:20;;;;;;4094:183;;;4194:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;4194:15:40;-1:-1:-1;;;;;4194:15:40;;;;;:8;;4246:5;;4234:10;;4227:35;;4194:15;;4227:35;-1:-1:-1;;;;;4227:35:40;;;;;;;;;;;;;;;3863:430;;;;;;:::o;767:94:27:-;842:12;767:94;:::o;1481:148:18:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:18:o;228:4676:40:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "1625200", + "executionCost": "1696", + "totalCost": "1626896" + }, + "external": { + "ACL_APP()": "infinite", + "ACL_APP_ID()": "infinite", + "APP_ADDR_NAMESPACE()": "401", + "APP_BASES_NAMESPACE()": "753", + "APP_MANAGER_ROLE()": "456", + "CORE_NAMESPACE()": "440", + "KERNEL_APP()": "529", + "KERNEL_APP_ID()": "308", + "acl()": "infinite", + "appId()": "590", + "apps(bytes32)": "733", + "getApp(bytes32)": "755", + "getInitializationBlock()": "634", + "hasPermission(address,address,bytes32,bytes)": "infinite", + "initialize(address,address)": "infinite", + "kernel()": "944", + "newAppInstance(bytes32,address)": "infinite", + "newAppProxy(address,bytes32)": "infinite", + "newAppProxy(address,bytes32,bytes)": "infinite", + "newAppProxyPinned(address,bytes32)": "infinite", + "newAppProxyPinned(address,bytes32,bytes)": "infinite", + "newPinnedAppInstance(bytes32,address)": "infinite", + "setApp(bytes32,bytes32,address)": "infinite" + }, + "internal": { + "_setApp(bytes32,bytes32,address)": "infinite", + "_setAppIfNew(bytes32,bytes32,address)": "infinite" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "APP_MANAGER_ROLE()": "8ea8dc9d", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "acl()": "de287359", + "appId()": "80afdea8", + "apps(bytes32)": "38bb6def", + "getApp(bytes32)": "42c71f1d", + "getInitializationBlock()": "8b3dd749", + "hasPermission(address,address,bytes32,bytes)": "fdef9106", + "initialize(address,address)": "485cc955", + "kernel()": "d4aae0c4", + "newAppInstance(bytes32,address)": "80cd5ac3", + "newAppProxy(address,bytes32)": "e156a8f3", + "newAppProxy(address,bytes32,bytes)": "ede658b0", + "newAppProxyPinned(address,bytes32)": "ff289fc5", + "newAppProxyPinned(address,bytes32,bytes)": "d162f8b0", + "newPinnedAppInstance(bytes32,address)": "958fde82", + "setApp(bytes32,bytes32,address)": "ae5b2540" + } + }, + "userdoc": { + "methods": { + "initialize(address,address)": { + "notice": "Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions" + } + } + } + } + }, + "@aragon/os/contracts/kernel/KernelProxy.sol": { + "KernelProxy": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "name": "apps", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_kernelImpl", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029", + "sourceMap": "95:717:41:-;;;419:126;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;419:126:41;;-1:-1:-1;478:4:41;;98:17:42;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;483:40:41;;;;;;;;;;;;;;;;;;;;;478:46;;;;;;;;;;;;;:60;;-1:-1:-1;;;;;478:60:41;;;;-1:-1:-1;;;;;;478:60:41;;;;;;;;;-1:-1:-1;95:717:41;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029", + "sourceMap": "95:717:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:40;776:4;:16;98:17:42;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;776:16:41;;;;;;;;;;;;;;;;;;;;;;;;;;;794:8;;763:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;763:12:41;;-1:-1:-1;;;;;763:40:41:i;:::-;95:717;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;311:628:26;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "250600", + "executionCost": "21071", + "totalCost": "271671" + }, + "external": { + "": "infinite", + "ACL_APP()": "infinite", + "ACL_APP_ID()": "infinite", + "APP_ADDR_NAMESPACE()": "infinite", + "APP_BASES_NAMESPACE()": "infinite", + "CORE_NAMESPACE()": "infinite", + "KERNEL_APP()": "infinite", + "KERNEL_APP_ID()": "infinite", + "apps(bytes32)": "infinite" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "apps(bytes32)": "38bb6def" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "@aragon/os/contracts/kernel/KernelStorage.sol": { + "KernelConstants": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029", + "sourceMap": "26:544:42:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029", + "sourceMap": "26:544:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "167600", + "executionCost": "209", + "totalCost": "167809" + }, + "external": { + "ACL_APP()": "510", + "ACL_APP_ID()": "355", + "APP_ADDR_NAMESPACE()": "267", + "APP_BASES_NAMESPACE()": "377", + "CORE_NAMESPACE()": "311", + "KERNEL_APP()": "466", + "KERNEL_APP_ID()": "245" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d" + } + }, + "userdoc": { + "methods": {} + } + }, + "KernelStorage": { + "abi": [ + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_ADDR_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "KERNEL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "name": "apps", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "CORE_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ACL_APP_ID", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "APP_BASES_NAMESPACE", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029", + "sourceMap": "573:91:42:-;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029", + "sourceMap": "573:91:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "190400", + "executionCost": "227", + "totalCost": "190627" + }, + "external": { + "ACL_APP()": "532", + "ACL_APP_ID()": "377", + "APP_ADDR_NAMESPACE()": "267", + "APP_BASES_NAMESPACE()": "399", + "CORE_NAMESPACE()": "333", + "KERNEL_APP()": "466", + "KERNEL_APP_ID()": "245", + "apps(bytes32)": "529" + } + }, + "methodIdentifiers": { + "ACL_APP()": "a3b4b07f", + "ACL_APP_ID()": "cbcc65eb", + "APP_ADDR_NAMESPACE()": "178e6079", + "APP_BASES_NAMESPACE()": "db8a61d4", + "CORE_NAMESPACE()": "756f6049", + "KERNEL_APP()": "25012699", + "KERNEL_APP_ID()": "1113ed0d", + "apps(bytes32)": "38bb6def" + } + }, + "userdoc": { + "methods": {} + } + } + }, + "giveth-common-contracts/contracts/ERC20.sol": { + "ERC20": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "supply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + ], + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Returns the amount which _spender is still allowed to withdraw from _owner" + }, + "approve(address,uint256)": { + "details": "Allows _spender to withdraw from the msg.sender's account up to the _value amount" + }, + "balanceOf(address)": { + "details": "Returns the account balance of the account with address _owner" + }, + "totalSupply()": { + "details": "Returns the total token supply" + }, + "transfer(address,uint256)": { + "details": "Transfers _value number of tokens to address _to" + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers _value number of tokens from address _from to address _to" + } + }, + "title": "ERC20" + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "", + "sourceMap": "" + }, + "gasEstimates": null, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "userdoc": { + "methods": {} + } + } + } + }, + "errors": [ + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:15:5: Warning: No visibility specified. Defaulting to \"public\".\n function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) {\n ^\nSpanning multiple lines.\n", + "message": "No visibility specified. Defaulting to \"public\".", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:21:5: Warning: No visibility specified. Defaulting to \"public\".\n function init(\n ^\nSpanning multiple lines.\n", + "message": "No visibility specified. Defaulting to \"public\".", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:57:5: Warning: No visibility specified. Defaulting to \"public\".\n function TestSimpleDelegatePluginFactory (\n ^\nSpanning multiple lines.\n", + "message": "No visibility specified. Defaulting to \"public\".", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleProjectPlugin.sol:14:5: Warning: No visibility specified. Defaulting to \"public\".\n function TestSimpleProjectPlugin() {\n ^\nSpanning multiple lines.\n", + "message": "No visibility specified. Defaulting to \"public\".", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleProjectPlugin.sol:19:5: Warning: No visibility specified. Defaulting to \"public\".\n function init(\n ^\nSpanning multiple lines.\n", + "message": "No visibility specified. Defaulting to \"public\".", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleProjectPluginFactory.sol:9:5: Warning: No visibility specified. Defaulting to \"public\".\n function deploy(\n ^\nSpanning multiple lines.\n", + "message": "No visibility specified. Defaulting to \"public\".", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:41:25: Warning: The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n let size := returndatasize\n ^------------^\n", + "message": "The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:47:17: Warning: The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data\n ^------------^\n", + "message": "The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/common/DelegateProxy.sol:14:25: Warning: The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n let size := returndatasize\n ^------------^\n", + "message": "The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/common/DelegateProxy.sol:17:13: Warning: The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n returndatacopy(ptr, 0, size)\n ^------------^\n", + "message": "The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:56:25: Warning: The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n let size := returndatasize\n ^------------^\n", + "message": "The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:60:13: Warning: The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n returndatacopy(add(ret, 0x20), 0, size) // copy return data\n ^------------^\n", + "message": "The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/acl/ACLSyntaxSugar.sol:5:43: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n function arr() internal pure returns (uint256[] r) {}\n ^---------^\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/evmscript/executors/CallsScript.sol:24:40: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n ^----------^\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:37:25: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n ) external returns (uint maxAllowed) {\n ^-------------^\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "./contracts/test/TestSimpleProjectPlugin.sol:36:25: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n ) external returns (uint maxAllowed) {\n ^-------------^\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:39:5: Warning: Function state mutability can be restricted to pure\n function returnedDataDecoded() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", + "message": "Function state mutability can be restricted to pure", + "severity": "warning", + "type": "Warning" + }, + { + "component": "general", + "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:54:5: Warning: Function state mutability can be restricted to pure\n function returnedData() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", + "message": "Function state mutability can be restricted to pure", + "severity": "warning", + "type": "Warning" + } + ], + "sources": { + "./contracts/EscapableApp.sol": { + "id": 0 + }, + "./contracts/ILiquidPledgingPlugin.sol": { + "id": 1 + }, + "./contracts/LPConstants.sol": { + "id": 2 + }, + "./contracts/LPFactory.sol": { + "id": 3 + }, + "./contracts/LPVault.sol": { + "id": 4 + }, + "./contracts/LiquidPledging.sol": { + "id": 5 + }, + "./contracts/LiquidPledgingACLHelpers.sol": { + "id": 6 + }, + "./contracts/LiquidPledgingBase.sol": { + "id": 7 + }, + "./contracts/LiquidPledgingMock.sol": { + "id": 8 + }, + "./contracts/LiquidPledgingPlugins.sol": { + "id": 9 + }, + "./contracts/LiquidPledgingStorage.sol": { + "id": 10 + }, + "./contracts/PledgeAdmins.sol": { + "id": 11 + }, + "./contracts/Pledges.sol": { + "id": 12 + }, + "./contracts/test/StandardToken.sol": { + "id": 13 + }, + "./contracts/test/TestSimpleDelegatePlugin.sol": { + "id": 14 + }, + "./contracts/test/TestSimpleProjectPlugin.sol": { + "id": 15 + }, + "./contracts/test/TestSimpleProjectPluginFactory.sol": { + "id": 16 + }, + "@aragon/os/contracts/acl/ACL.sol": { + "id": 17 + }, + "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { + "id": 18 + }, + "@aragon/os/contracts/acl/IACL.sol": { + "id": 19 + }, + "@aragon/os/contracts/apps/AppProxyBase.sol": { + "id": 20 + }, + "@aragon/os/contracts/apps/AppProxyPinned.sol": { + "id": 21 + }, + "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { + "id": 22 + }, + "@aragon/os/contracts/apps/AppStorage.sol": { + "id": 23 + }, + "@aragon/os/contracts/apps/AragonApp.sol": { + "id": 24 + }, + "@aragon/os/contracts/apps/IAppProxy.sol": { + "id": 25 + }, + "@aragon/os/contracts/common/DelegateProxy.sol": { + "id": 26 + }, + "@aragon/os/contracts/common/Initializable.sol": { + "id": 27 + }, + "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { + "id": 28 + }, + "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { + "id": 29 + }, + "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { + "id": 30 + }, + "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { + "id": 31 + }, + "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { + "id": 32 + }, + "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { + "id": 33 + }, + "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { + "id": 34 + }, + "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { + "id": 35 + }, + "@aragon/os/contracts/factory/AppProxyFactory.sol": { + "id": 36 + }, + "@aragon/os/contracts/factory/DAOFactory.sol": { + "id": 37 + }, + "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { + "id": 38 + }, + "@aragon/os/contracts/kernel/IKernel.sol": { + "id": 39 + }, + "@aragon/os/contracts/kernel/Kernel.sol": { + "id": 40 + }, + "@aragon/os/contracts/kernel/KernelProxy.sol": { + "id": 41 + }, + "@aragon/os/contracts/kernel/KernelStorage.sol": { + "id": 42 + }, + "giveth-common-contracts/contracts/ERC20.sol": { + "id": 43 + } + } +} \ No newline at end of file From 90e0ea361ec617a1fe2f93cbaca4c2eca48ae52a Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 16 Mar 2018 07:21:54 -0700 Subject: [PATCH 39/52] update package.json --- package-lock.json | 77 ++++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index 725dda6..b337c49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,11 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@aragon/os": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@aragon/os/-/os-3.0.1.tgz", + "integrity": "sha512-5Xp9+UEG+f4bg4llAIDcDEIphVL/7GlcsMdi00i3i/keW5B//t4O2oO7Sp9wBLpKuuhbmRQM1FFSAsEBVL7FTQ==" + }, "@babel/code-frame": { "version": "7.0.0-beta.36", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.36.tgz", @@ -1156,12 +1161,6 @@ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", "dev": true }, - "bignumber.js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", - "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==", - "dev": true - }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -2108,12 +2107,6 @@ "randomfill": "1.0.3" } }, - "crypto-js": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.8.tgz", - "integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU=", - "dev": true - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -7633,20 +7626,25 @@ } }, "solcpiler": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/solcpiler/-/solcpiler-0.0.10.tgz", - "integrity": "sha512-mVg2Z2d+aMTEZCXdRuXGnPwoRZUgXqQ/GQiYwWNUTA7qbzUIwZmOcdKHEMRK7wsdONxMm45Z6IwX0c8rmirVAw==", + "version": "git+https://github.com/perissology/solcpiler.git#b60ac51b6ac8ec6ff55eb9695c4c10c2c49c0dbf", "dev": true, "requires": { "app-root-path": "2.0.1", "async": "2.6.0", + "eth-contract-class": "0.0.8", "glob": "7.1.2", "lodash": "4.17.4", "solc": "0.4.19", - "web3": "0.19.1", + "web3-utils": "1.0.0-beta.31", "yargs": "8.0.2" }, "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "dev": true + }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -7671,6 +7669,15 @@ } } }, + "eth-contract-class": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/eth-contract-class/-/eth-contract-class-0.0.8.tgz", + "integrity": "sha512-etG93OBkkjWx/wgMNZgngi3JTNHhQ3j9qKCaktvoUEDXyqj4FPLt3EVmjH9x28iK1KQHJbcmhf0THmffHRAu3A==", + "dev": true, + "requires": { + "web3-core-promievent": "1.0.0-beta.27" + } + }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -7680,17 +7687,25 @@ "number-is-nan": "1.0.1" } }, - "web3": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-0.19.1.tgz", - "integrity": "sha1-52PVsRB8S8JKvU+MvuG6Nlnm6zE=", + "utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=", + "dev": true + }, + "web3-utils": { + "version": "1.0.0-beta.31", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.31.tgz", + "integrity": "sha1-DxgSXT6WmK6Cy/b6Ka3B4WFvKTY=", "dev": true, "requires": { - "bignumber.js": "4.1.0", - "crypto-js": "3.1.8", - "utf8": "2.1.2", - "xhr2": "0.1.4", - "xmlhttprequest": "1.8.0" + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" } }, "yargs": { @@ -8571,12 +8586,6 @@ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", "dev": true }, - "utf8": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz", - "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=", - "dev": true - }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", @@ -9347,12 +9356,6 @@ "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=", "dev": true }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true - }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/package.json b/package.json index 8fb1fa2..822565b 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "mocha": "^3.5.0", "random-bytes": "^1.0.0", "solcpiler": "https://github.com/perissology/solcpiler.git#b60ac51b", - "web3": "1.0.0-beta.24" + "web3": "1.0.0-beta.31" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", "dependencies": { From 72f6d1dae144ae06c69324ebfa2c96bed060e4ba Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 16 Mar 2018 07:28:04 -0700 Subject: [PATCH 40/52] add lib files --- .gitignore | 1 - lib/liquidPledgingState.js | 135 +++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 lib/liquidPledgingState.js diff --git a/.gitignore b/.gitignore index c0771ea..62336de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -lib/ node_modules/ .DS_Store diff --git a/lib/liquidPledgingState.js b/lib/liquidPledgingState.js new file mode 100644 index 0000000..8013181 --- /dev/null +++ b/lib/liquidPledgingState.js @@ -0,0 +1,135 @@ +'use strict'; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var LiquidPledgingState = function () { + function LiquidPledgingState(liquidPledging) { + _classCallCheck(this, LiquidPledgingState); + + this.$lp = liquidPledging; + } + + _createClass(LiquidPledgingState, [{ + key: '$getPledge', + value: function $getPledge(idPledge) { + var _this = this; + + var pledge = { + delegates: [] + }; + + return this.$lp.getPledge(idPledge).then(function (res) { + pledge.amount = res.amount; + pledge.owner = res.owner; + pledge.token = res.token; + + if (res.intendedProject) { + pledge.intendedProject = res.intendedProject; + pledge.commmitTime = res.commitTime; + } + if (res.oldPledge) { + pledge.oldPledge = res.oldPledge; + } + if (res.pledgeState === '0') { + pledge.pledgeState = 'Pledged'; + } else if (res.pledgeState === '1') { + pledge.pledgeState = 'Paying'; + } else if (res.pledgeState === '2') { + pledge.pledgeState = 'Paid'; + } else { + pledge.pledgeState = 'Unknown'; + } + + var promises = []; + for (var i = 1; i <= res.nDelegates; i += 1) { + promises.push(_this.$lp.getPledgeDelegate(idPledge, i).then(function (r) { + return { + id: r.idDelegate, + addr: r.addr, + name: r.name, + url: r.url + }; + })); + } + + return Promise.all(promises); + }).then(function (delegates) { + pledge.delegates = delegates; + return pledge; + }); + } + }, { + key: '$getAdmin', + value: function $getAdmin(idAdmin) { + var admin = {}; + return this.$lp.getPledgeAdmin(idAdmin).then(function (res) { + if (res.adminType === '0') { + admin.type = 'Giver'; + } else if (res.adminType === '1') { + admin.type = 'Delegate'; + } else if (res.adminType === '2') { + admin.type = 'Project'; + } else { + admin.type = 'Unknown'; + } + admin.addr = res.addr; + admin.name = res.name; + admin.url = res.url; + admin.commitTime = res.commitTime; + if (admin.type === 'Project') { + admin.parentProject = res.parentProject; + admin.canceled = res.canceled; + } + admin.plugin = res.plugin; + return admin; + }); + } + }, { + key: 'getState', + value: function getState() { + var _this2 = this; + + var getPledges = function getPledges() { + return _this2.$lp.numberOfPledges().then(function (nPledges) { + var promises = []; + for (var i = 1; i <= nPledges; i += 1) { + promises.push(_this2.$getPledge(i)); + } + return Promise.all(promises); + }); + }; + + var getAdmins = function getAdmins() { + return _this2.$lp.numberOfPledgeAdmins().then(function (nAdmins) { + var promises = []; + for (var i = 1; i <= nAdmins; i += 1) { + promises.push(_this2.$getAdmin(i)); + } + + return Promise.all(promises); + }); + }; + + return Promise.all([getPledges(), getAdmins()]).then(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + pledges = _ref2[0], + admins = _ref2[1]; + + return { + pledges: [null].concat(_toConsumableArray(pledges)), + admins: [null].concat(_toConsumableArray(admins)) + }; + }); + } + }]); + + return LiquidPledgingState; +}(); + +module.exports = LiquidPledgingState; \ No newline at end of file From e4c34225ae7eab479e6615d73c4be249c49cf212 Mon Sep 17 00:00:00 2001 From: perissology Date: Fri, 16 Mar 2018 07:31:22 -0700 Subject: [PATCH 41/52] export LiquidPledgingMock --- index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 3d753d2..77575d5 100644 --- a/index.js +++ b/index.js @@ -5,5 +5,6 @@ exports.LPVault = contracts.LPVault; exports.LPFactory = contracts.LPFactory; exports.test = { StandardTokenTest: contracts.StandardToken, - assertFail: require('./test/helpers/assertFail') + assertFail: require('./test/helpers/assertFail'), + LiquidPledgingMock: contracts.LiquidPledgingMock, }; From fb78a616b5b352ecfb8f905ec9024684b7430b98 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 27 Mar 2018 10:55:37 -0700 Subject: [PATCH 42/52] minor changes to contracts --- contracts/EscapableApp.sol | 20 +++++-- contracts/LPFactory.sol | 4 +- contracts/LPVault.sol | 19 ++++--- contracts/LiquidPledging.sol | 26 +++++---- contracts/LiquidPledgingBase.sol | 61 ++++++++++++--------- contracts/LiquidPledgingMock.sol | 3 + contracts/LiquidPledgingPlugins.sol | 4 +- contracts/PledgeAdmins.sol | 20 +++---- contracts/Pledges.sol | 4 +- contracts/test/TestSimpleDelegatePlugin.sol | 8 +-- test/AdminPlugins.js | 4 +- test/CancelPledge.js | 4 +- test/DelegationChain.js | 4 +- test/NormalOperation.js | 7 ++- test/NormalizePledge.js | 4 +- test/Vault.js | 4 +- 16 files changed, 111 insertions(+), 85 deletions(-) diff --git a/contracts/EscapableApp.sol b/contracts/EscapableApp.sol index 87dce90..469c97f 100644 --- a/contracts/EscapableApp.sol +++ b/contracts/EscapableApp.sol @@ -38,21 +38,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -75,10 +76,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract diff --git a/contracts/LPFactory.sol b/contracts/LPFactory.sol index 342d087..197e33e 100644 --- a/contracts/LPFactory.sol +++ b/contracts/LPFactory.sol @@ -19,7 +19,7 @@ contract LPFactory is LPConstants, DAOFactory { lpBase = _lpBase; } - function newLP(address _root, address _escapeHatchDestination) public { + function newLP(address _root, address _escapeHatchDestination) external { Kernel kernel = newDAO(this); ACL acl = ACL(kernel.acl()); @@ -42,13 +42,11 @@ contract LPFactory is LPConstants, DAOFactory { bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); - bytes32 authPaymentRole = v.AUTHORIZE_PAYMENT_ROLE(); bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); acl.createPermission(_root, address(v), hatchCallerRole, _root); acl.createPermission(_root, address(lp), hatchCallerRole, _root); acl.createPermission(_root, address(lp), pluginManagerRole, _root); - acl.createPermission(address(lp), address(v), authPaymentRole, _root); // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways acl.grantPermission(_root, address(kernel), appManagerRole); diff --git a/contracts/LPVault.sol b/contracts/LPVault.sol index 08776d8..f99ff9f 100644 --- a/contracts/LPVault.sol +++ b/contracts/LPVault.sol @@ -41,7 +41,6 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); - bytes32 constant public AUTHORIZE_PAYMENT_ROLE = keccak256("AUTHORIZE_PAYMENT_ROLE"); bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); event AutoPaySet(bool autoPay); @@ -86,6 +85,9 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { _; } + function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } + function initialize(address _escapeHatchDestination) onlyInit public { require(false); // overload the EscapableApp _escapeHatchDestination; @@ -125,7 +127,7 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { address _dest, address _token, uint _amount - ) external authP(AUTHORIZE_PAYMENT_ROLE, arr(_dest, _amount)) returns (uint) + ) external onlyLiquidPledging returns (uint) { uint idPayment = payments.length; payments.length ++; @@ -150,13 +152,15 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// has been authorized /// @param _idPayment Array lookup for the payment. function confirmPayment(uint _idPayment) public { + Payment storage p = payments[_idPayment]; + require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); _doConfirmPayment(_idPayment); } /// @notice When `autopay` is `false` and after a payment has been authorized /// to allow the owner to cancel a payment instead of confirming it. /// @param _idPayment Array lookup for the payment. - function cancelPayment(uint _idPayment) public { + function cancelPayment(uint _idPayment) external { _doCancelPayment(_idPayment); } @@ -164,7 +168,7 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// @param _idPayments An array of multiple payment ids function multiConfirm(uint[] _idPayments) external { for (uint i = 0; i < _idPayments.length; i++) { - _doConfirmPayment(_idPayments[i]); + confirmPayment(_idPayments[i]); } } @@ -181,17 +185,15 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// before being thoroughly battle-tested. /// @param _token to transfer /// @param _amount to transfer - function escapeFunds(address _token, uint _amount) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(_token != 0x0); ERC20 token = ERC20(_token); - uint balance = token.balanceOf(this); - require(balance >= _amount); require(token.transfer(escapeHatchDestination, _amount)); EscapeFundsCalled(_token, _amount); } /// @return The total number of payments that have ever been authorized - function nPayments() public view returns (uint) { + function nPayments() external view returns (uint) { return payments.length; } @@ -202,7 +204,6 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { require(_idPayment < payments.length); Payment storage p = payments[_idPayment]; require(p.state == PaymentStatus.Pending); - require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); p.state = PaymentStatus.Paid; liquidPledging.confirmPayment(uint64(p.ref), p.amount); diff --git a/contracts/LiquidPledging.sol b/contracts/LiquidPledging.sol index f2eafc9..0235616 100644 --- a/contracts/LiquidPledging.sol +++ b/contracts/LiquidPledging.sol @@ -27,6 +27,8 @@ import "./LiquidPledgingBase.sol"; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public @@ -48,7 +50,7 @@ contract LiquidPledging is LiquidPledgingBase { /// found), the amount of ETH donated in wei is added to the `amount` in /// the Giver's Pledge, and an LP transfer is done to the idReceiver for /// the full amount - /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idGiver The id of the Giver donating /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) @@ -61,6 +63,9 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( @@ -97,7 +102,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) public { - checkAdminOwner(idSender); + _checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -111,7 +116,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - checkAdminOwner(p.owner); + _checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -180,7 +185,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); - checkAdminOwner(idProject); + _checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -196,7 +201,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -231,7 +237,7 @@ contract LiquidPledging is LiquidPledgingBase { ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; transfer(idSender, idPledge, amount, idReceiver); @@ -245,7 +251,7 @@ contract LiquidPledging is LiquidPledgingBase { /// bitmask function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; withdraw(idPledge, amount); @@ -258,7 +264,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; confirmPayment(idPledge, amount); @@ -271,7 +277,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; cancelPayment(idPledge, amount); @@ -283,7 +289,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledges An array of pledge IDs function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge( pledges[i] ); + normalizePledge(pledges[i]); } } } diff --git a/contracts/LiquidPledgingBase.sol b/contracts/LiquidPledgingBase.sol index 5db6592..74b0ffc 100644 --- a/contracts/LiquidPledgingBase.sol +++ b/contracts/LiquidPledgingBase.sol @@ -29,7 +29,6 @@ import "./EscapableApp.sol"; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -76,7 +75,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -88,6 +87,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -154,7 +157,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -179,8 +182,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -199,26 +204,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -245,6 +250,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -256,17 +262,18 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index 797ab79..058d184 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -28,6 +28,9 @@ contract LiquidPledgingMock is LiquidPledging { uint public mock_time; + function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public { + } + /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` /// instance and sets the mocked time to the current blocktime. function initialize(address _vault, address _escapeHatchDestination) onlyInit public { diff --git a/contracts/LiquidPledgingPlugins.sol b/contracts/LiquidPledgingPlugins.sol index 4c00554..c314119 100644 --- a/contracts/LiquidPledgingPlugins.sol +++ b/contracts/LiquidPledgingPlugins.sol @@ -27,7 +27,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -45,7 +45,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 6372c78..55731c1 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -52,7 +52,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -107,7 +107,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -135,7 +135,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -173,7 +173,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -205,7 +205,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -248,7 +248,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -269,7 +269,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -286,7 +286,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -311,7 +311,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -347,7 +347,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { diff --git a/contracts/Pledges.sol b/contracts/Pledges.sol index 14c55db..9378303 100644 --- a/contracts/Pledges.sol +++ b/contracts/Pledges.sol @@ -36,7 +36,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -45,7 +45,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, diff --git a/contracts/test/TestSimpleDelegatePlugin.sol b/contracts/test/TestSimpleDelegatePlugin.sol index 53c4492..61ffd67 100644 --- a/contracts/test/TestSimpleDelegatePlugin.sol +++ b/contracts/test/TestSimpleDelegatePlugin.sol @@ -12,7 +12,7 @@ contract TestSimpleDelegatePlugin { event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) { + function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) public { require(msg.sender != tx.origin); // Avoids being created directly by mistake. liquidPledging = _liquidPledging; initPending = true; @@ -22,7 +22,7 @@ contract TestSimpleDelegatePlugin { string name, string url, uint64 commitTime - ) { + ) public { require(initPending); idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); initPending = false; @@ -54,12 +54,12 @@ contract TestSimpleDelegatePlugin { contract TestSimpleDelegatePluginFactory { - function TestSimpleDelegatePluginFactory ( + function TestSimpleDelegatePluginFactory( LiquidPledging liquidPledging, string name, string url, uint64 commitTime - ) { + ) public { TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); d.init(name, url, commitTime); } diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index 3c9988a..e37ac82 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -52,8 +52,8 @@ describe('LiquidPledging plugins test', function () { }); it('Should deploy LiquidPledging contract', async function () { - const baseVault = await contracts.LPVault.new(web3); - const baseLP = await contracts.LiquidPledgingMock.new(web3); + const baseVault = await contracts.LPVault.new(web3, accounts[0]); + const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); diff --git a/test/CancelPledge.js b/test/CancelPledge.js index c5fcdd3..b29e8ca 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -49,8 +49,8 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3); - const baseLP = await contracts.LiquidPledgingMock.new(web3); + const baseVault = await contracts.LPVault.new(web3, accounts[0]); + const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); diff --git a/test/DelegationChain.js b/test/DelegationChain.js index aafa544..0409693 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -56,8 +56,8 @@ describe('DelegationChain test', function () { }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3); - const baseLP = await contracts.LiquidPledgingMock.new(web3); + const baseVault = await contracts.LPVault.new(web3, accounts[0]); + const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 041f397..dc7ee3b 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -67,10 +67,13 @@ describe('LiquidPledging test', function () { }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3); - const baseLP = await contracts.LiquidPledgingMock.new(web3, {gas: 6700000}); + const baseVault = await contracts.LPVault.new(web3, escapeHatchDestination); + const baseLP = await contracts.LiquidPledgingMock.new(web3, escapeHatchDestination, {gas: 6700000}); lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); + assert.isAbove(Number(await baseVault.getInitializationBlock()), 0); + assert.isAbove(Number(await baseLP.getInitializationBlock()), 0); + const r = await lpFactory.newLP(accounts[0], escapeHatchDestination); const vaultAddress = r.events.DeployVault.returnValues.vault; diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 61a6856..620d3a8 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -54,8 +54,8 @@ describe('NormalizePledge test', function () { }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3); - const baseLP = await contracts.LiquidPledgingMock.new(web3); + const baseVault = await contracts.LPVault.new(web3, accounts[0]); + const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); diff --git a/test/Vault.js b/test/Vault.js index 7c4ecef..7252290 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -50,8 +50,8 @@ describe('Vault test', function () { }); it('Should deploy Vault contract', async function () { - const baseVault = await contracts.LPVault.new(web3); - const baseLP = await contracts.LiquidPledgingMock.new(web3); + const baseVault = await contracts.LPVault.new(web3, escapeHatchDestination); + const baseLP = await contracts.LiquidPledgingMock.new(web3, escapeHatchDestination); lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], escapeHatchDestination); From 6e434af54913e7b07da14a5607700628ab7c98f5 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 27 Mar 2018 10:55:44 -0700 Subject: [PATCH 43/52] re-build --- build/EscapableApp.sol.js | 12 +- build/EscapableApp_all.sol | 122 ++- build/LPFactory.sol.js | 58 +- build/LPFactory_all.sol | 224 +++-- build/LPVault.sol.js | 23 +- build/LPVault_all.sol | 273 ++++++- build/LiquidPledging.sol.js | 44 +- build/LiquidPledgingBase.sol.js | 36 +- build/LiquidPledgingBase_all.sol | 807 +++++++++++++++++-- build/LiquidPledgingMock.sol.js | 52 +- build/LiquidPledgingMock_all.sol | 196 +++-- build/LiquidPledgingPlugins.sol.js | 10 +- build/LiquidPledgingPlugins_all.sol | 93 ++- build/LiquidPledging_all.sol | 434 ++++++++-- build/PledgeAdmins.sol.js | 16 +- build/PledgeAdmins_all.sol | 387 ++++++++- build/Pledges.sol.js | 10 +- build/Pledges_all.sol | 166 +++- build/TestSimpleDelegatePlugin.sol.js | 55 +- build/TestSimpleDelegatePlugin_all.sol | 206 +++-- build/TestSimpleProjectPlugin.sol.js | 48 +- build/TestSimpleProjectPluginFactory.sol.js | 52 +- build/TestSimpleProjectPluginFactory_all.sol | 158 ++-- build/TestSimpleProjectPlugin_all.sol | 191 +++-- build/solcStandardInput.json | 304 ++++++- build/solcStandardOutput.json | 804 +++++------------- 26 files changed, 3565 insertions(+), 1216 deletions(-) diff --git a/build/EscapableApp.sol.js b/build/EscapableApp.sol.js index fa7a1f9..7bb1b3e 100644 --- a/build/EscapableApp.sol.js +++ b/build/EscapableApp.sol.js @@ -50,8 +50,12 @@ exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_ exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/EscapableApp_all.sol b/build/EscapableApp_all.sol index d80e9a6..82e1fa9 100644 --- a/build/EscapableApp_all.sol +++ b/build/EscapableApp_all.sol @@ -518,21 +518,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -555,10 +556,119 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + + /// @notice Creates the blacklist of tokens that are not able to be taken + /// out of the contract; can only be done at the deployment, and the logic + /// to add to the blacklist will be in the constructor of a child contract + /// @param _token the token contract address that is to be blacklisted + function _blacklistEscapeToken(address _token) internal { + escapeBlacklist[_token] = true; + EscapeHatchBlackistedToken(_token); + } +} + + +///File: ./contracts/EscapableApp.sol + +pragma solidity ^0.4.18; +/* + Copyright 2016, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +// import "./Owned.sol"; + + + + +/// @dev `EscapableApp` is a base level contract; it creates an escape hatch +/// function that can be called in an +/// emergency that will allow designated addresses to send any ether or tokens +/// held in the contract to an `escapeHatchDestination` as long as they were +/// not blacklisted +contract EscapableApp is AragonApp { + // warning whoever has this role can move all funds to the `escapeHatchDestination` + bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); + + event EscapeHatchBlackistedToken(address token); + event EscapeHatchCalled(address token, uint amount); + + address public escapeHatchDestination; + mapping (address=>bool) private escapeBlacklist; // Token contract addresses + uint[20] private storageOffset; // reserve 20 slots for future upgrades + + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _escapeHatchDestination) onlyInit public { + _init(_escapeHatchDestination); + } + + /// @notice The `escapeHatch()` should only be called as a last resort if a + /// security issue is uncovered or something unexpected happened + /// @param _token to transfer, use 0x0 for ether + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(escapeBlacklist[_token]==false); + + uint256 balance; + + /// @dev Logic for ether + if (_token == 0x0) { + balance = this.balance; + escapeHatchDestination.transfer(balance); + EscapeHatchCalled(_token, balance); + return; + } + /// @dev Logic for tokens + ERC20 token = ERC20(_token); + balance = token.balanceOf(this); + require(token.transfer(escapeHatchDestination, balance)); + EscapeHatchCalled(_token, balance); + } + + /// @notice Checks to see if `_token` is in the blacklist of tokens + /// @param _token the token address being queried + /// @return False if `_token` is in the blacklist and can't be taken out of + /// the contract via the `escapeHatch()` + function isTokenEscapable(address _token) view external returns (bool) { + return !escapeBlacklist[_token]; + } + + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract diff --git a/build/LPFactory.sol.js b/build/LPFactory.sol.js index 67c211c..39c17b4 100644 --- a/build/LPFactory.sol.js +++ b/build/LPFactory.sol.js @@ -123,10 +123,10 @@ exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"addre exports.ERC20ByteCode = "0x" exports.ERC20RuntimeByteCode = "0x" exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingACLHelpersAbi = [] exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" @@ -134,10 +134,10 @@ exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingByteCode = "0x" exports.ILiquidPledgingRuntimeByteCode = "0x" -exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"AUTHORIZE_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LPVaultByteCode = "0x6060604052341561000f57600080fd5b6118218061001e6000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" -exports.LPVaultRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" -exports['_./contracts/LPVault.sol_keccak256'] = "0xe15efc5feed73ddc4b350af232ffd35cdfcf241648f230b707d546e357c3819c" +exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LPVaultByteCode = "0x606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" +exports.LPVaultRuntimeByteCode = "0x6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" +exports['_./contracts/LPVault.sol_keccak256'] = "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda" exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingPluginByteCode = "0x" exports.ILiquidPledgingPluginRuntimeByteCode = "0x" @@ -150,31 +150,35 @@ exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff191690553415610 exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.LPConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] exports.LPConstantsByteCode = "0x6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" exports.LPConstantsRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" exports['_./contracts/LPConstants.sol_keccak256'] = "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314" exports.LPFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"newLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vaultBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vaultBase","type":"address"},{"name":"_lpBase","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"vault","type":"address"}],"name":"DeployVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"liquidPledging","type":"address"}],"name":"DeployLiquidPledging","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] -exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b604051604080620053f283398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001e3183390190565b6040516115e58062003e0d83390190565b611ccd80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd000296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd00029" -exports['_./contracts/LPFactory.sol_keccak256'] = "0x8ca680de04905959209a4cad64ac490075a97e3960bf7f788defc80ac259e5e7" +exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f2500296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f250029" +exports['_./contracts/LPFactory.sol_keccak256'] = "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc" +exports.LPFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"newLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vaultBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vaultBase","type":"address"},{"name":"_lpBase","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"vault","type":"address"}],"name":"DeployVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"liquidPledging","type":"address"}],"name":"DeployLiquidPledging","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] +exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f2500296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f250029" +exports['_./contracts/LPFactory.sol_keccak256'] = "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPFactory_all.sol b/build/LPFactory_all.sol index 064e13c..a3ce3ee 100644 --- a/build/LPFactory_all.sol +++ b/build/LPFactory_all.sol @@ -1576,21 +1576,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -1613,10 +1614,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -1697,7 +1705,6 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); - bytes32 constant public AUTHORIZE_PAYMENT_ROLE = keccak256("AUTHORIZE_PAYMENT_ROLE"); bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); event AutoPaySet(bool autoPay); @@ -1742,6 +1749,9 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { _; } + function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } + function initialize(address _escapeHatchDestination) onlyInit public { require(false); // overload the EscapableApp _escapeHatchDestination; @@ -1781,7 +1791,7 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { address _dest, address _token, uint _amount - ) external authP(AUTHORIZE_PAYMENT_ROLE, arr(_dest, _amount)) returns (uint) + ) external onlyLiquidPledging returns (uint) { uint idPayment = payments.length; payments.length ++; @@ -1806,13 +1816,15 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// has been authorized /// @param _idPayment Array lookup for the payment. function confirmPayment(uint _idPayment) public { + Payment storage p = payments[_idPayment]; + require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); _doConfirmPayment(_idPayment); } /// @notice When `autopay` is `false` and after a payment has been authorized /// to allow the owner to cancel a payment instead of confirming it. /// @param _idPayment Array lookup for the payment. - function cancelPayment(uint _idPayment) public { + function cancelPayment(uint _idPayment) external { _doCancelPayment(_idPayment); } @@ -1820,7 +1832,7 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// @param _idPayments An array of multiple payment ids function multiConfirm(uint[] _idPayments) external { for (uint i = 0; i < _idPayments.length; i++) { - _doConfirmPayment(_idPayments[i]); + confirmPayment(_idPayments[i]); } } @@ -1837,17 +1849,15 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// before being thoroughly battle-tested. /// @param _token to transfer /// @param _amount to transfer - function escapeFunds(address _token, uint _amount) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(_token != 0x0); ERC20 token = ERC20(_token); - uint balance = token.balanceOf(this); - require(balance >= _amount); require(token.transfer(escapeHatchDestination, _amount)); EscapeFundsCalled(_token, _amount); } /// @return The total number of payments that have ever been authorized - function nPayments() public view returns (uint) { + function nPayments() external view returns (uint) { return payments.length; } @@ -1858,7 +1868,6 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { require(_idPayment < payments.length); Payment storage p = payments[_idPayment]; require(p.state == PaymentStatus.Pending); - require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); p.state = PaymentStatus.Paid; liquidPledging.confirmPayment(uint64(p.ref), p.amount); @@ -2071,7 +2080,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -2089,7 +2098,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -2185,7 +2194,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -2240,7 +2249,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -2268,7 +2277,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -2306,7 +2315,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -2338,7 +2347,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -2381,7 +2390,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -2402,7 +2411,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -2419,7 +2428,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -2444,7 +2453,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -2480,7 +2489,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { @@ -2532,7 +2541,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -2541,7 +2550,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, @@ -2687,7 +2696,6 @@ pragma solidity ^0.4.18; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -2734,7 +2742,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -2746,6 +2754,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -2812,7 +2824,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -2837,8 +2849,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -2857,26 +2871,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -2903,6 +2917,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -2914,17 +2929,18 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } @@ -3376,6 +3392,8 @@ pragma solidity ^0.4.18; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public @@ -3397,7 +3415,7 @@ contract LiquidPledging is LiquidPledgingBase { /// found), the amount of ETH donated in wei is added to the `amount` in /// the Giver's Pledge, and an LP transfer is done to the idReceiver for /// the full amount - /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idGiver The id of the Giver donating /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) @@ -3410,6 +3428,9 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( @@ -3446,7 +3467,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) public { - checkAdminOwner(idSender); + _checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -3460,7 +3481,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - checkAdminOwner(p.owner); + _checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -3529,7 +3550,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); - checkAdminOwner(idProject); + _checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -3545,7 +3566,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -3580,7 +3602,7 @@ contract LiquidPledging is LiquidPledgingBase { ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; transfer(idSender, idPledge, amount, idReceiver); @@ -3594,7 +3616,7 @@ contract LiquidPledging is LiquidPledgingBase { /// bitmask function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; withdraw(idPledge, amount); @@ -3607,7 +3629,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; confirmPayment(idPledge, amount); @@ -3620,7 +3642,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; cancelPayment(idPledge, amount); @@ -3632,7 +3654,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledges An array of pledge IDs function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge( pledges[i] ); + normalizePledge(pledges[i]); } } } @@ -3672,7 +3694,73 @@ contract LPFactory is LPConstants, DAOFactory { lpBase = _lpBase; } - function newLP(address _root, address _escapeHatchDestination) public { + function newLP(address _root, address _escapeHatchDestination) external { + Kernel kernel = newDAO(this); + ACL acl = ACL(kernel.acl()); + + bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); + + acl.createPermission(this, address(kernel), appManagerRole, this); + + LPVault v = LPVault(kernel.newAppInstance(VAULT_APP_ID, vaultBase)); + LiquidPledging lp = LiquidPledging(kernel.newAppInstance(LP_APP_ID, lpBase)); + v.initialize(address(lp), _escapeHatchDestination); + lp.initialize(address(v), _escapeHatchDestination); + + // register the lp instance w/ the kernel + kernel.setApp(kernel.APP_ADDR_NAMESPACE(), LP_APP_ID, address(lp)); + + _setPermissions(_root, acl, kernel, v, lp); + } + + function _setPermissions(address _root, ACL acl, Kernel kernel, LPVault v, LiquidPledging lp) internal { + bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); + bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); + bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); + bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); + + acl.createPermission(_root, address(v), hatchCallerRole, _root); + acl.createPermission(_root, address(lp), hatchCallerRole, _root); + acl.createPermission(_root, address(lp), pluginManagerRole, _root); + // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways + + acl.grantPermission(_root, address(kernel), appManagerRole); + acl.grantPermission(_root, address(acl), permRole); + acl.revokePermission(this, address(kernel), appManagerRole); + acl.revokePermission(this, address(acl), permRole); + + acl.setPermissionManager(_root, address(kernel), appManagerRole); + acl.setPermissionManager(_root, address(acl), permRole); + + DeployVault(address(v)); + DeployLiquidPledging(address(lp)); + } +} + +///File: ./contracts/LPFactory.sol + +pragma solidity ^0.4.18; + + + + + + +contract LPFactory is LPConstants, DAOFactory { + address public vaultBase; + address public lpBase; + + event DeployVault(address vault); + event DeployLiquidPledging(address liquidPledging); + + function LPFactory(address _vaultBase, address _lpBase) public DAOFactory(0) { + require(_vaultBase != 0); + require(_lpBase != 0); + vaultBase = _vaultBase; + lpBase = _lpBase; + } + + function newLP(address _root, address _escapeHatchDestination) external { Kernel kernel = newDAO(this); ACL acl = ACL(kernel.acl()); @@ -3695,13 +3783,11 @@ contract LPFactory is LPConstants, DAOFactory { bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); - bytes32 authPaymentRole = v.AUTHORIZE_PAYMENT_ROLE(); bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); acl.createPermission(_root, address(v), hatchCallerRole, _root); acl.createPermission(_root, address(lp), hatchCallerRole, _root); acl.createPermission(_root, address(lp), pluginManagerRole, _root); - acl.createPermission(address(lp), address(v), authPaymentRole, _root); // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways acl.grantPermission(_root, address(kernel), appManagerRole); diff --git a/build/LPVault.sol.js b/build/LPVault.sol.js index 9a9cd27..c39dcfa 100644 --- a/build/LPVault.sol.js +++ b/build/LPVault.sol.js @@ -50,10 +50,10 @@ exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_ exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingACLHelpersAbi = [] exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" @@ -61,8 +61,15 @@ exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] exports.ILiquidPledgingByteCode = "0x" exports.ILiquidPledgingRuntimeByteCode = "0x" -exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"AUTHORIZE_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LPVaultByteCode = "0x6060604052341561000f57600080fd5b6118218061001e6000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" -exports.LPVaultRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029" -exports['_./contracts/LPVault.sol_keccak256'] = "0xe15efc5feed73ddc4b350af232ffd35cdfcf241648f230b707d546e357c3819c" +exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LPVaultByteCode = "0x606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" +exports.LPVaultRuntimeByteCode = "0x6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" +exports['_./contracts/LPVault.sol_keccak256'] = "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda" +exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.ILiquidPledgingByteCode = "0x" +exports.ILiquidPledgingRuntimeByteCode = "0x" +exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LPVaultByteCode = "0x606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" +exports.LPVaultRuntimeByteCode = "0x6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" +exports['_./contracts/LPVault.sol_keccak256'] = "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPVault_all.sol b/build/LPVault_all.sol index 8890f0c..6c6aff5 100644 --- a/build/LPVault_all.sol +++ b/build/LPVault_all.sol @@ -518,21 +518,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -555,10 +556,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -639,7 +647,6 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); - bytes32 constant public AUTHORIZE_PAYMENT_ROLE = keccak256("AUTHORIZE_PAYMENT_ROLE"); bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); event AutoPaySet(bool autoPay); @@ -684,6 +691,9 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { _; } + function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } + function initialize(address _escapeHatchDestination) onlyInit public { require(false); // overload the EscapableApp _escapeHatchDestination; @@ -723,7 +733,7 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { address _dest, address _token, uint _amount - ) external authP(AUTHORIZE_PAYMENT_ROLE, arr(_dest, _amount)) returns (uint) + ) external onlyLiquidPledging returns (uint) { uint idPayment = payments.length; payments.length ++; @@ -748,13 +758,15 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// has been authorized /// @param _idPayment Array lookup for the payment. function confirmPayment(uint _idPayment) public { + Payment storage p = payments[_idPayment]; + require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); _doConfirmPayment(_idPayment); } /// @notice When `autopay` is `false` and after a payment has been authorized /// to allow the owner to cancel a payment instead of confirming it. /// @param _idPayment Array lookup for the payment. - function cancelPayment(uint _idPayment) public { + function cancelPayment(uint _idPayment) external { _doCancelPayment(_idPayment); } @@ -762,7 +774,7 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// @param _idPayments An array of multiple payment ids function multiConfirm(uint[] _idPayments) external { for (uint i = 0; i < _idPayments.length; i++) { - _doConfirmPayment(_idPayments[i]); + confirmPayment(_idPayments[i]); } } @@ -779,17 +791,249 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { /// before being thoroughly battle-tested. /// @param _token to transfer /// @param _amount to transfer - function escapeFunds(address _token, uint _amount) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(_token != 0x0); ERC20 token = ERC20(_token); - uint balance = token.balanceOf(this); - require(balance >= _amount); require(token.transfer(escapeHatchDestination, _amount)); EscapeFundsCalled(_token, _amount); } /// @return The total number of payments that have ever been authorized - function nPayments() public view returns (uint) { + function nPayments() external view returns (uint) { + return payments.length; + } + + /// @notice Transfers ETH according to the data held within the specified + /// payment id (internal function) + /// @param _idPayment id number for the payment about to be fulfilled + function _doConfirmPayment(uint _idPayment) internal { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + + p.state = PaymentStatus.Paid; + liquidPledging.confirmPayment(uint64(p.ref), p.amount); + + ERC20 token = ERC20(p.token); + require(token.transfer(p.dest, p.amount)); // Transfers token to dest + + ConfirmPayment(_idPayment, p.ref); + } + + /// @notice Cancels a pending payment (internal function) + /// @param _idPayment id number for the payment + function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { + require(_idPayment < payments.length); + Payment storage p = payments[_idPayment]; + require(p.state == PaymentStatus.Pending); + + p.state = PaymentStatus.Canceled; + + liquidPledging.cancelPayment(uint64(p.ref), p.amount); + + CancelPayment(_idPayment, p.ref); + } +} + + +///File: ./contracts/LPVault.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: RJ Ewing, Griff Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/// @dev This contract holds ether securely for liquid pledging systems; for +/// this iteration the funds will come often be escaped to the Giveth Multisig +/// (safety precaution), but once fully tested and optimized this contract will +/// be a safe place to store funds equipped with optional variable time delays +/// to allow for an optional escapeHatch to be implemented in case of issues; +/// future versions of this contract will be enabled for tokens + + + + +/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract +/// to confirm and cancel payments in the `LiquidPledging` contract. +contract ILiquidPledging { + function confirmPayment(uint64 idPledge, uint amount) public; + function cancelPayment(uint64 idPledge, uint amount) public; +} + +/// @dev `LPVault` is a higher level contract built off of the `Escapable` +/// contract that holds funds for the liquid pledging system. +contract LPVault is EscapableApp, LiquidPledgingACLHelpers { + + bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); + bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); + bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); + + event AutoPaySet(bool autoPay); + event EscapeFundsCalled(address token, uint amount); + event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); + event CancelPayment(uint indexed idPayment, bytes32 indexed ref); + event AuthorizePayment( + uint indexed idPayment, + bytes32 indexed ref, + address indexed dest, + address token, + uint amount + ); + + enum PaymentStatus { + Pending, // When the payment is awaiting confirmation + Paid, // When the payment has been sent + Canceled // When the payment will never be sent + } + + /// @dev `Payment` is a public structure that describes the details of + /// each payment the `ref` param makes it easy to track the movements of + /// funds transparently by its connection to other `Payment` structs + struct Payment { + bytes32 ref; // an input that references details from other contracts + address dest; // recipient of the ETH + PaymentStatus state; // Pending, Paid or Canceled + address token; + uint amount; // amount of ETH (in wei) to be sent + } + + bool public autoPay; // If false, payments will take 2 txs to be completed + + // @dev An array that contains all the payments for this LPVault + Payment[] public payments; + ILiquidPledging public liquidPledging; + + /// @dev The attached `LiquidPledging` contract is the only address that can + /// call a function with this modifier + modifier onlyLiquidPledging() { + require(msg.sender == address(liquidPledging)); + _; + } + + function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _liquidPledging + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { + super.initialize(_escapeHatchDestination); + + require(_liquidPledging != 0x0); + liquidPledging = ILiquidPledging(_liquidPledging); + } + + /// @notice Used to decentralize, toggles whether the LPVault will + /// automatically confirm a payment after the payment has been authorized + /// @param _automatic If true, payments will confirm instantly, if false + /// the training wheels are put on and the owner must manually approve + /// every payment + function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) { + autoPay = _automatic; + AutoPaySet(autoPay); + } + + /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner` + /// must call `confirmPayment()` for a transfer to occur (training wheels); + /// either way, a new payment is added to `payments[]` + /// @param _ref References the payment will normally be the pledgeID + /// @param _dest The address that payments will be sent to + /// @param _amount The amount that the payment is being authorized for + /// @return idPayment The id of the payment (needed by the owner to confirm) + function authorizePayment( + bytes32 _ref, + address _dest, + address _token, + uint _amount + ) external onlyLiquidPledging returns (uint) + { + uint idPayment = payments.length; + payments.length ++; + payments[idPayment].state = PaymentStatus.Pending; + payments[idPayment].ref = _ref; + payments[idPayment].dest = _dest; + payments[idPayment].token = _token; + payments[idPayment].amount = _amount; + + AuthorizePayment(idPayment, _ref, _dest, _token, _amount); + + if (autoPay) { + _doConfirmPayment(idPayment); + } + + return idPayment; + } + + /// @notice Allows the owner to confirm payments; since + /// `authorizePayment` is the only way to populate the `payments[]` array + /// this is generally used when `autopay` is `false` after a payment has + /// has been authorized + /// @param _idPayment Array lookup for the payment. + function confirmPayment(uint _idPayment) public { + Payment storage p = payments[_idPayment]; + require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); + _doConfirmPayment(_idPayment); + } + + /// @notice When `autopay` is `false` and after a payment has been authorized + /// to allow the owner to cancel a payment instead of confirming it. + /// @param _idPayment Array lookup for the payment. + function cancelPayment(uint _idPayment) external { + _doCancelPayment(_idPayment); + } + + /// @notice `onlyOwner` An efficient way to confirm multiple payments + /// @param _idPayments An array of multiple payment ids + function multiConfirm(uint[] _idPayments) external { + for (uint i = 0; i < _idPayments.length; i++) { + confirmPayment(_idPayments[i]); + } + } + + /// @notice `onlyOwner` An efficient way to cancel multiple payments + /// @param _idPayments An array of multiple payment ids + function multiCancel(uint[] _idPayments) external { + for (uint i = 0; i < _idPayments.length; i++) { + _doCancelPayment(_idPayments[i]); + } + } + + /// Transfer tokens to the escapeHatchDestination. + /// Used as a safety mechanism to prevent the vault from holding too much value + /// before being thoroughly battle-tested. + /// @param _token to transfer + /// @param _amount to transfer + function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + require(_token != 0x0); + ERC20 token = ERC20(_token); + require(token.transfer(escapeHatchDestination, _amount)); + EscapeFundsCalled(_token, _amount); + } + + /// @return The total number of payments that have ever been authorized + function nPayments() external view returns (uint) { return payments.length; } @@ -800,7 +1044,6 @@ contract LPVault is EscapableApp, LiquidPledgingACLHelpers { require(_idPayment < payments.length); Payment storage p = payments[_idPayment]; require(p.state == PaymentStatus.Pending); - require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); p.state = PaymentStatus.Paid; liquidPledging.confirmPayment(uint64(p.ref), p.amount); diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index 0b8aee6..38a9f22 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -62,31 +62,35 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] exports.ERC20ByteCode = "0x" exports.ERC20RuntimeByteCode = "0x" exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js index 1f37c27..8938ca5 100644 --- a/build/LiquidPledgingBase.sol.js +++ b/build/LiquidPledgingBase.sol.js @@ -62,27 +62,31 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] exports.ERC20ByteCode = "0x" exports.ERC20RuntimeByteCode = "0x" exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingBase_all.sol b/build/LiquidPledgingBase_all.sol index 08691c3..1440603 100644 --- a/build/LiquidPledgingBase_all.sol +++ b/build/LiquidPledgingBase_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -764,7 +764,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -819,7 +819,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -847,7 +847,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -885,7 +885,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -917,7 +917,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -960,7 +960,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -981,7 +981,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -998,7 +998,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -1023,7 +1023,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -1059,7 +1059,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { @@ -1111,7 +1111,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -1120,7 +1120,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, @@ -1311,21 +1311,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -1348,10 +1349,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -1396,7 +1404,6 @@ pragma solidity ^0.4.18; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -1443,7 +1450,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -1455,6 +1462,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -1521,7 +1532,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -1546,8 +1557,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -1566,26 +1579,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -1612,6 +1625,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -1623,17 +1637,716 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); + return; + } + + // And the receiver is a Project, all the delegates after the sender + // are removed and the amount is pre-committed to the project + if (receiver.adminType == PledgeAdminType.Project) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _proposeAssignProject(idPledge, amount, idReceiver); + return; + } + } + assert(false); // When the sender is not an owner or a delegate + } + + /// @notice `transferOwnershipToProject` allows for the transfer of + /// ownership to the project, but it can also be called by a project + /// to un-delegate everyone by setting one's own id for the idReceiver + /// @param idPledge the id of the pledge to be transfered. + /// @param amount Quantity of value that's being transfered + /// @param idReceiver The new owner of the project (or self to un-delegate) + function _transferOwnershipToProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + // Ensure that the pledge is not already at max pledge depth + // and the project has not been canceled + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + idReceiver, // Set the new owner + new uint64[](0), // clear the delegation chain + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + + /// @notice `transferOwnershipToGiver` allows for the transfer of + /// value back to the Giver, value is placed in a pledged state + /// without being attached to a project, delegation chain, or time line. + /// @param idPledge the id of the pledge to be transferred. + /// @param amount Quantity of value that's being transferred + /// @param idReceiver The new owner of the pledge + function _transferOwnershipToGiver( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + uint64 toPledge = _findOrCreatePledge( + idReceiver, + new uint64[](0), + 0, + 0, + 0, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's being chained. + /// @param idReceiver The delegate to be added at the end of the chain + function _appendDelegate( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(p.delegationChain.length < MAX_DELEGATES); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length + 1 + ); + for (uint i = 0; i < p.delegationChain.length; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + + // Make the last item in the array the idReceiver + newDelegationChain[p.delegationChain.length] = idReceiver; + + uint64 toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `appendDelegate` allows for a delegate to be added onto the + /// end of the delegate chain for a given Pledge. + /// @param idPledge the id of the pledge thats delegate chain will be modified. + /// @param amount Quantity of value that's shifted from delegates. + /// @param q Number (or depth) of delegates to remove + /// @return toPledge The id for the pledge being adjusted or created + function _undelegate( + uint64 idPledge, + uint amount, + uint q + ) internal returns (uint64 toPledge) + { + Pledge storage p = _findPledge(idPledge); + uint64[] memory newDelegationChain = new uint64[]( + p.delegationChain.length - q + ); + + for (uint i = 0; i < p.delegationChain.length - q; i++) { + newDelegationChain[i] = p.delegationChain[i]; + } + toPledge = _findOrCreatePledge( + p.owner, + newDelegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `proposeAssignProject` proposes the assignment of a pledge + /// to a specific project. + /// @dev This function should potentially be named more specifically. + /// @param idPledge the id of the pledge that will be assigned. + /// @param amount Quantity of value this pledge leader would be assigned. + /// @param idReceiver The project this pledge will potentially + /// be assigned to. + function _proposeAssignProject( + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + Pledge storage p = _findPledge(idPledge); + + require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); + require(!isProjectCanceled(idReceiver)); + + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + idReceiver, + uint64(_getTime() + _maxCommitTime(p)), + p.oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, amount); + } + + /// @notice `doTransfer` is designed to allow for pledge amounts to be + /// shifted around internally. + /// @param from This is the id of the pledge from which value will be transferred. + /// @param to This is the id of the pledge that value will be transferred to. + /// @param _amount The amount of value that will be transferred. + function _doTransfer(uint64 from, uint64 to, uint _amount) internal { + uint amount = _callPlugins(true, from, to, _amount); + if (from == to) { + return; + } + if (amount == 0) { + return; + } + + Pledge storage pFrom = _findPledge(from); + Pledge storage pTo = _findPledge(to); + + require(pFrom.amount >= amount); + pFrom.amount -= amount; + pTo.amount += amount; + + Transfer(from, to, amount); + _callPlugins(false, from, to, amount); + } + + /// @notice A getter to find the longest commitTime out of the owner and all + /// the delegates for a specified pledge + /// @param p The Pledge being queried + /// @return The maximum commitTime out of the owner and all the delegates + function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { + PledgeAdmin storage a = _findAdmin(p.owner); + commitTime = a.commitTime; // start with the owner's commitTime + + for (uint i = 0; i < p.delegationChain.length; i++) { + a = _findAdmin(p.delegationChain[i]); + + // If a delegate's commitTime is longer, make it the new commitTime + if (a.commitTime > commitTime) { + commitTime = a.commitTime; + } + } + } + + /// @notice A getter to find the oldest pledge that hasn't been canceled + /// @param idPledge The starting place to lookup the pledges + /// @return The oldest idPledge that hasn't been canceled (DUH!) + function _getOldestPledgeNotCanceled( + uint64 idPledge + ) internal view returns(uint64) + { + if (idPledge == 0) { + return 0; + } + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage admin = _findAdmin(p.owner); + + if (admin.adminType == PledgeAdminType.Giver) { + return idPledge; + } + + assert(admin.adminType == PledgeAdminType.Project); + if (!isProjectCanceled(p.owner)) { + return idPledge; + } + + return _getOldestPledgeNotCanceled(p.oldPledge); + } + + /// @notice `callPlugin` is used to trigger the general functions in the + /// plugin for any actions needed before and after a transfer happens. + /// Specifically what this does in relation to the plugin is something + /// that largely depends on the functions of that plugin. This function + /// is generally called in pairs, once before, and once after a transfer. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param adminId This should be the Id of the *trusted* individual + /// who has control over this plugin. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param context The situation that is triggering the plugin. See plugin + /// for a full description of contexts. + /// @param amount The amount of value that is being transfered. + function _callPlugin( + bool before, + uint64 adminId, + uint64 fromPledge, + uint64 toPledge, + uint64 context, + address token, + uint amount + ) internal returns (uint allowedAmount) + { + uint newAmount; + allowedAmount = amount; + PledgeAdmin storage admin = _findAdmin(adminId); + + // Checks admin has a plugin assigned and a non-zero amount is requested + if (address(admin.plugin) != 0 && allowedAmount > 0) { + // There are two separate functions called in the plugin. + // One is called before the transfer and one after + if (before) { + newAmount = admin.plugin.beforeTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + require(newAmount <= allowedAmount); + allowedAmount = newAmount; + } else { + admin.plugin.afterTransfer( + adminId, + fromPledge, + toPledge, + context, + token, + amount + ); + } + } + } + + /// @notice `callPluginsPledge` is used to apply plugin calls to + /// the delegate chain and the intended project if there is one. + /// It does so in either a transferring or receiving context based + /// on the `p` and `fromPledge` parameters. + /// @param before This toggle determines whether the plugin call is occuring + /// before or after a transfer. + /// @param idPledge This is the id of the pledge on which this plugin + /// is being called. + /// @param fromPledge This is the Id from which value is being transfered. + /// @param toPledge This is the Id that value is being transfered to. + /// @param amount The amount of value that is being transfered. + function _callPluginsPledge( + bool before, + uint64 idPledge, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + // Determine if callPlugin is being applied in a receiving + // or transferring context + uint64 offset = idPledge == fromPledge ? 0 : 256; + allowedAmount = amount; + Pledge storage p = _findPledge(idPledge); + + // Always call the plugin on the owner + allowedAmount = _callPlugin( + before, + p.owner, + fromPledge, + toPledge, + offset, + p.token, + allowedAmount + ); + + // Apply call plugin to all delegates + for (uint64 i = 0; i < p.delegationChain.length; i++) { + allowedAmount = _callPlugin( + before, + p.delegationChain[i], + fromPledge, + toPledge, + offset + i + 1, + p.token, + allowedAmount + ); + } + + // If there is an intended project also call the plugin in + // either a transferring or receiving context based on offset + // on the intended project + if (p.intendedProject > 0) { + allowedAmount = _callPlugin( + before, + p.intendedProject, + fromPledge, + toPledge, + offset + 255, + p.token, + allowedAmount + ); + } + } + + /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer + /// context and once for the receiving context. The aggregated + /// allowed amount is then returned. + /// @param before This toggle determines whether the plugin call is occurring + /// before or after a transfer. + /// @param fromPledge This is the Id from which value is being transferred. + /// @param toPledge This is the Id that value is being transferred to. + /// @param amount The amount of value that is being transferred. + function _callPlugins( + bool before, + uint64 fromPledge, + uint64 toPledge, + uint amount + ) internal returns (uint allowedAmount) + { + allowedAmount = amount; + + // Call the plugins in the transfer context + allowedAmount = _callPluginsPledge( + before, + fromPledge, + fromPledge, + toPledge, + allowedAmount + ); + + // Call the plugins in the receive context + allowedAmount = _callPluginsPledge( + before, + toPledge, + fromPledge, + toPledge, + allowedAmount + ); + } + +///////////// +// Test functions +///////////// + + /// @notice Basic helper function to return the current time + function _getTime() internal view returns (uint) { + return now; + } +} + + +///File: ./contracts/LiquidPledgingBase.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina + Contributors: Adrià Massanet , RJ Ewing, Griff + Green, Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + + +/// @dev `LiquidPledgingBase` is the base level contract used to carry out +/// liquidPledging's most basic functions, mostly handling and searching the +/// data structures +contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { + + event Transfer(uint indexed from, uint indexed to, uint amount); + event CancelProject(uint indexed idProject); + +///////////// +// Modifiers +///////////// + + /// @dev The `vault`is the only addresses that can call a function with this + /// modifier + modifier onlyVault() { + require(msg.sender == address(vault)); + _; + } + +/////////////// +// Constructor +/////////////// + + function initialize(address _escapeHatchDestination) onlyInit public { + require(false); // overload the EscapableApp + _escapeHatchDestination; + } + + /// @param _vault The vault where the ETH backing the pledges is stored + /// @param _escapeHatchDestination The address of a safe location (usu a + /// Multisig) to send the ether held in this contract; if a neutral address + /// is required, the WHG Multisig is an option: + /// 0x8Ff920020c8AD673661c8117f2855C384758C572 + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_escapeHatchDestination); + require(_vault != 0x0); + + vault = ILPVault(_vault); + + admins.length = 1; // we reserve the 0 admin + pledges.length = 1; // we reserve the 0 pledge + } + + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index + /// @param idPledge The id number representing the pledge being queried + /// @param idxDelegate The index number for the delegate in this Pledge + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( + uint64 idDelegate, + address addr, + string name + ) { + Pledge storage p = _findPledge(idPledge); + idDelegate = p.delegationChain[idxDelegate - 1]; + PledgeAdmin storage delegate = _findAdmin(idDelegate); + addr = delegate.addr; + name = delegate.name; + } + +/////////////////// +// Public functions +/////////////////// + + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: + /// #1: Checks if the pledge should be committed. This means that + /// if the pledge has an intendedProject and it is past the + /// commitTime, it changes the owner to be the proposed project + /// (The UI will have to read the commit time and manually do what + /// this function does to the pledge for the end user + /// at the expiration of the commitTime) + /// + /// #2: Checks to make sure that if there has been a cancellation in the + /// chain of projects, the pledge's owner has been changed + /// appropriately. + /// + /// This function can be called by anybody at anytime on any pledge. + /// In general it can be called to force the calls of the affected + /// plugins, which also need to be predicted by the UI + /// @param idPledge This is the id of the pledge that will be normalized + /// @return The normalized Pledge! + function normalizePledge(uint64 idPledge) public returns(uint64) { + Pledge storage p = _findPledge(idPledge); + + // Check to make sure this pledge hasn't already been used + // or is in the process of being used + if (p.pledgeState != PledgeState.Pledged) { + return idPledge; + } + + // First send to a project if it's proposed and committed + if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { + uint64 oldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + uint64 toPledge = _findOrCreatePledge( + p.intendedProject, + new uint64[](0), + 0, + 0, + oldPledge, + p.token, + PledgeState.Pledged + ); + _doTransfer(idPledge, toPledge, p.amount); + idPledge = toPledge; + p = _findPledge(idPledge); + } + + toPledge = _getOldestPledgeNotCanceled(idPledge); + if (toPledge != idPledge) { + _doTransfer(idPledge, toPledge, p.amount); + } + + return toPledge; + } + +//////////////////// +// Internal methods +//////////////////// + + /// @notice A check to see if the msg.sender is the owner or the + /// plugin contract for a specific Admin + /// @param idAdmin The id of the admin being checked + function _checkAdminOwner(uint64 idAdmin) internal view { + PledgeAdmin storage a = _findAdmin(idAdmin); + require(msg.sender == address(a.plugin) || msg.sender == a.addr); + } + + function _transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) internal + { + require(idReceiver > 0); // prevent burning value + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + PledgeAdmin storage receiver = _findAdmin(idReceiver); + + require(p.pledgeState == PledgeState.Pledged); + + // If the sender is the owner of the Pledge + if (p.owner == idSender) { + + if (receiver.adminType == PledgeAdminType.Giver) { + _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; + } else if (receiver.adminType == PledgeAdminType.Project) { + _transferOwnershipToProject(idPledge, amount, idReceiver); + return; + } else if (receiver.adminType == PledgeAdminType.Delegate) { + + uint recieverDIdx = _getDelegateIdx(p, idReceiver); + if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { + // if there is an intendedProject and the receiver is in the delegationChain, + // then we want to preserve the delegationChain as this is a veto of the + // intendedProject by the owner + + if (recieverDIdx == p.delegationChain.length - 1) { + uint64 toPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged); + _doTransfer(idPledge, toPledge, amount); + return; + } + + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; + } + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); + } + + // If the sender is a Delegate + uint senderDIdx = _getDelegateIdx(p, idSender); + if (senderDIdx != NOTFOUND) { + + // And the receiver is another Giver + if (receiver.adminType == PledgeAdminType.Giver) { + // Only transfer to the Giver who owns the pledge + assert(p.owner == idReceiver); + _undelegate(idPledge, amount, p.delegationChain.length); + return; + } + + // And the receiver is another Delegate + if (receiver.adminType == PledgeAdminType.Delegate) { + uint receiverDIdx = _getDelegateIdx(p, idReceiver); + + // And not in the delegationChain + if (receiverDIdx == NOTFOUND) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + return; + + // And part of the delegationChain and is after the sender, then + // all of the other delegates after the sender are removed and + // the receiver is appended at the end of the delegationChain + } else if (receiverDIdx > senderDIdx) { + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length - senderDIdx - 1 + ); + _appendDelegate(idPledge, amount, idReceiver); + return; + } + + // And is already part of the delegate chain but is before the + // sender, then the sender and all of the other delegates after + // the RECEIVER are removed from the delegationChain + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js index 3cb9fcd..4808ca1 100644 --- a/build/LiquidPledgingMock.sol.js +++ b/build/LiquidPledgingMock.sol.js @@ -62,33 +62,33 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] exports.ERC20ByteCode = "0x" exports.ERC20RuntimeByteCode = "0x" exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" exports.KernelConstantsRuntimeByteCode = "0x6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" @@ -124,8 +124,12 @@ exports.KernelAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","output exports.KernelByteCode = "0x6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" exports.KernelRuntimeByteCode = "0x606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" exports['_@aragon/os/contracts/kernel/Kernel.sol_keccak256'] = "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d" -exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b6155a0806100286000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029" -exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029" -exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0x720f154a6ac388274e60351edea2b1b1f5493b52a1afc052040a678ef57eb62f" +exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005586833981016040528080519150819050806200004d8164010000000062004e556200005682021704565b505050620000d5565b6200006e64010000000062005066620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005080620000d182021704565b600355565b4390565b6154a180620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" +exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" +exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd" +exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005586833981016040528080519150819050806200004d8164010000000062004e556200005682021704565b505050620000d5565b6200006e64010000000062005066620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005080620000d182021704565b600355565b4390565b6154a180620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" +exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" +exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol index 6d1c648..ea9188f 100644 --- a/build/LiquidPledgingMock_all.sol +++ b/build/LiquidPledgingMock_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -764,7 +764,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -819,7 +819,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -847,7 +847,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -885,7 +885,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -917,7 +917,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -960,7 +960,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -981,7 +981,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -998,7 +998,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -1023,7 +1023,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -1059,7 +1059,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { @@ -1111,7 +1111,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -1120,7 +1120,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, @@ -1311,21 +1311,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -1348,10 +1349,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -1396,7 +1404,6 @@ pragma solidity ^0.4.18; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -1443,7 +1450,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -1455,6 +1462,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -1521,7 +1532,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -1546,8 +1557,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -1566,26 +1579,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -1612,6 +1625,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -1623,17 +1637,18 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } @@ -2085,6 +2100,8 @@ pragma solidity ^0.4.18; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public @@ -2106,7 +2123,7 @@ contract LiquidPledging is LiquidPledgingBase { /// found), the amount of ETH donated in wei is added to the `amount` in /// the Giver's Pledge, and an LP transfer is done to the idReceiver for /// the full amount - /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idGiver The id of the Giver donating /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) @@ -2119,6 +2136,9 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( @@ -2155,7 +2175,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) public { - checkAdminOwner(idSender); + _checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -2169,7 +2189,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - checkAdminOwner(p.owner); + _checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -2238,7 +2258,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); - checkAdminOwner(idProject); + _checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -2254,7 +2274,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -2289,7 +2310,7 @@ contract LiquidPledging is LiquidPledgingBase { ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; transfer(idSender, idPledge, amount, idReceiver); @@ -2303,7 +2324,7 @@ contract LiquidPledging is LiquidPledgingBase { /// bitmask function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; withdraw(idPledge, amount); @@ -2316,7 +2337,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; confirmPayment(idPledge, amount); @@ -2329,7 +2350,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; cancelPayment(idPledge, amount); @@ -2341,7 +2362,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledges An array of pledge IDs function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge( pledges[i] ); + normalizePledge(pledges[i]); } } } @@ -2731,6 +2752,67 @@ contract LiquidPledgingMock is LiquidPledging { uint public mock_time; + function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public { + } + + /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` + /// instance and sets the mocked time to the current blocktime. + function initialize(address _vault, address _escapeHatchDestination) onlyInit public { + super.initialize(_vault, _escapeHatchDestination); + mock_time = now; + } + + /// @dev `getTime` is a basic getter function for + /// the mock_time parameter + function _getTime() internal view returns (uint) { + return mock_time; + } + + /// @dev `setMockedTime` is a basic setter function for + /// the mock_time parameter + /// @param _t This is the value to which the mocked time + /// will be set. + function setMockedTime(uint _t) public { + mock_time = _t; + } +} + + +///File: ./contracts/LiquidPledgingMock.sol + +pragma solidity ^0.4.11; +/* + Copyright 2017, Jordi Baylina + Contributor: Adrià Massanet + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +// hack so that solcpiler will generate a contracts.Kernel object + + +/// @dev `LiquidPledgingMock` allows for mocking up +/// a `LiquidPledging` contract with the added ability +/// to manipulate the block time for testing purposes. +contract LiquidPledgingMock is LiquidPledging { + + uint public mock_time; + + function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public { + } + /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` /// instance and sets the mocked time to the current blocktime. function initialize(address _vault, address _escapeHatchDestination) onlyInit public { diff --git a/build/LiquidPledgingPlugins.sol.js b/build/LiquidPledgingPlugins.sol.js index 6e8e331..234b68f 100644 --- a/build/LiquidPledgingPlugins.sol.js +++ b/build/LiquidPledgingPlugins.sol.js @@ -62,7 +62,11 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" +exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingPlugins_all.sol b/build/LiquidPledgingPlugins_all.sol index 2757e12..0a37046 100644 --- a/build/LiquidPledgingPlugins_all.sol +++ b/build/LiquidPledgingPlugins_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,96 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { + pluginInstanceWhitelist[addr] = false; + } + + function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { + whitelistDisabled = !useWhitelist; + } + + function isValidPlugin(address addr) public view returns(bool) { + if (whitelistDisabled || addr == 0x0) { + return true; + } + + // first check pluginInstances + if (pluginInstanceWhitelist[addr]) { + return true; + } + + // if the addr isn't a valid instance, check the contract code + bytes32 contractHash = getCodeHash(addr); + + return pluginContractWhitelist[contractHash]; + } + + function getCodeHash(address addr) public view returns(bytes32) { + bytes memory o_code; + assembly { + // retrieve the size of the code, this needs assembly + let size := extcodesize(addr) + // allocate output byte array - this could also be done without assembly + // by using o_code = new bytes(size) + o_code := mload(0x40) + mstore(o_code, size) // store length in memory + // actually retrieve the code, this needs assembly + extcodecopy(addr, add(o_code, 0x20), 0, size) + } + return keccak256(o_code); + } +} + +///File: ./contracts/LiquidPledgingPlugins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + + +contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { + + bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); + + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { + pluginInstanceWhitelist[addr] = true; + } + + function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { + pluginContractWhitelist[contractHash] = true; + } + + function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { + for (uint8 i = 0; i < contractHashes.length; i++) { + addValidPluginContract(contractHashes[i]); + } + } + + function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { + pluginContractWhitelist[contractHash] = false; + } + + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol index a3bdfb5..a8881b8 100644 --- a/build/LiquidPledging_all.sol +++ b/build/LiquidPledging_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -764,7 +764,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -819,7 +819,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -847,7 +847,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -885,7 +885,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -917,7 +917,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -960,7 +960,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -981,7 +981,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -998,7 +998,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -1023,7 +1023,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -1059,7 +1059,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { @@ -1111,7 +1111,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -1120,7 +1120,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, @@ -1311,21 +1311,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -1348,10 +1349,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -1396,7 +1404,6 @@ pragma solidity ^0.4.18; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -1443,7 +1450,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -1455,6 +1462,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -1521,7 +1532,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -1546,8 +1557,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -1566,26 +1579,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -1612,6 +1625,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -1623,17 +1637,18 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } @@ -2085,6 +2100,8 @@ pragma solidity ^0.4.18; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public @@ -2106,7 +2123,7 @@ contract LiquidPledging is LiquidPledgingBase { /// found), the amount of ETH donated in wei is added to the `amount` in /// the Giver's Pledge, and an LP transfer is done to the idReceiver for /// the full amount - /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idGiver The id of the Giver donating /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) @@ -2119,6 +2136,9 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( @@ -2155,7 +2175,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) public { - checkAdminOwner(idSender); + _checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -2169,7 +2189,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - checkAdminOwner(p.owner); + _checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -2238,7 +2258,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); - checkAdminOwner(idProject); + _checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -2254,7 +2274,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -2289,7 +2310,7 @@ contract LiquidPledging is LiquidPledgingBase { ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; transfer(idSender, idPledge, amount, idReceiver); @@ -2303,7 +2324,7 @@ contract LiquidPledging is LiquidPledgingBase { /// bitmask function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; withdraw(idPledge, amount); @@ -2316,7 +2337,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; confirmPayment(idPledge, amount); @@ -2329,7 +2350,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; cancelPayment(idPledge, amount); @@ -2341,7 +2362,306 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledges An array of pledge IDs function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge( pledges[i] ); + normalizePledge(pledges[i]); + } + } +} + + +///File: ./contracts/LiquidPledging.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +/// @dev `LiquidPledging` allows for liquid pledging through the use of +/// internal id structures and delegate chaining. All basic operations for +/// handling liquid pledging are supplied as well as plugin features +/// to allow for expanded functionality. +contract LiquidPledging is LiquidPledgingBase { + + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } + + function addGiverAndDonate(uint64 idReceiver, address token, uint amount) + public + { + addGiverAndDonate(idReceiver, msg.sender, token, amount); + } + + function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) + public + { + require(donorAddress != 0); + // default to a 3 day (259200 seconds) commitTime + uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); + donate(idGiver, idReceiver, token, amount); + } + + /// @notice This is how value enters the system and how pledges are created; + /// the ether is sent to the vault, an pledge for the Giver is created (or + /// found), the amount of ETH donated in wei is added to the `amount` in + /// the Giver's Pledge, and an LP transfer is done to the idReceiver for + /// the full amount + /// @param idGiver The id of the Giver donating + /// @param idReceiver The Admin receiving the donation; can be any Admin: + /// the Giver themselves, another Giver, a Delegate or a Project + function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) + public + { + require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer + require(amount > 0); + require(token != 0x0); + + PledgeAdmin storage sender = _findAdmin(idGiver); + require(sender.adminType == PledgeAdminType.Giver); + + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? + require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` + + uint64 idPledge = _findOrCreatePledge( + idGiver, + new uint64[](0), // Creates empty array for delegationChain + 0, + 0, + 0, + token, + PledgeState.Pledged + ); + + Pledge storage pTo = _findPledge(idPledge); + pTo.amount += amount; + + Transfer(0, idPledge, amount); + + _transfer(idGiver, idPledge, amount, idReceiver); + } + + /// @notice Transfers amounts between pledges for internal accounting + /// @param idSender Id of the Admin that is transferring the amount from + /// Pledge to Pledge; this admin must have permissions to move the value + /// @param idPledge Id of the pledge that's moving the value + /// @param amount Quantity of ETH (in wei) that this pledge is transferring + /// the authority to withdraw from the vault + /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending + /// to a Giver, a Delegate or a Project; a Delegate sending to another + /// Delegate, or a Delegate pre-commiting it to a Project + function transfer( + uint64 idSender, + uint64 idPledge, + uint amount, + uint64 idReceiver + ) public + { + _checkAdminOwner(idSender); + _transfer(idSender, idPledge, amount, idReceiver); + } + + /// @notice Authorizes a payment be made from the `vault` can be used by the + /// Giver to veto a pre-committed donation from a Delegate to an + /// intendedProject + /// @param idPledge Id of the pledge that is to be redeemed into ether + /// @param amount Quantity of ether (in wei) to be authorized + function withdraw(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); // Updates pledge info + + Pledge storage p = _findPledge(idPledge); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paying + ); + + _doTransfer(idPledge, idNewPledge, amount); + + PledgeAdmin storage owner = _findAdmin(p.owner); + vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); + } + + /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState + /// from Paying to Paid + /// @param idPledge Id of the pledge that is to be withdrawn + /// @param amount Quantity of ether (in wei) to be withdrawn + function confirmPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + uint64 idNewPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Paid + ); + + _doTransfer(idPledge, idNewPledge, amount); + } + + /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState + /// from Paying back to Pledged + /// @param idPledge Id of the pledge that's withdraw is to be canceled + /// @param amount Quantity of ether (in wei) to be canceled + function cancelPayment(uint64 idPledge, uint amount) public onlyVault { + Pledge storage p = _findPledge(idPledge); + + require(p.pledgeState == PledgeState.Paying); + + // When a payment is canceled, never is assigned to a project. + uint64 idOldPledge = _findOrCreatePledge( + p.owner, + p.delegationChain, + 0, + 0, + p.oldPledge, + p.token, + PledgeState.Pledged + ); + + idOldPledge = normalizePledge(idOldPledge); + + _doTransfer(idPledge, idOldPledge, amount); + } + + /// @notice Changes the `project.canceled` flag to `true`; cannot be undone + /// @param idProject Id of the project that is to be canceled + function cancelProject(uint64 idProject) public { + PledgeAdmin storage project = _findAdmin(idProject); + _checkAdminOwner(idProject); + project.canceled = true; + + CancelProject(idProject); + } + + /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that + /// that sent it there in the first place, a Ctrl-z + /// @param idPledge Id of the pledge that is to be canceled + /// @param amount Quantity of ether (in wei) to be transfered to the + /// `oldPledge` + function cancelPledge(uint64 idPledge, uint amount) public { + idPledge = normalizePledge(idPledge); + + Pledge storage p = _findPledge(idPledge); + require(p.oldPledge != 0); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); + + uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); + _doTransfer(idPledge, oldPledge, amount); + } + + +//////// +// Multi pledge methods +//////// + + // @dev This set of functions makes moving a lot of pledges around much more + // efficient (saves gas) than calling these functions in series + + + /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods + uint constant D64 = 0x10000000000000000; + + /// @notice Transfers multiple amounts within multiple Pledges in an + /// efficient single call + /// @param idSender Id of the Admin that is transferring the amounts from + /// all the Pledges; this admin must have permissions to move the value + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or + /// Project sending to a Giver, a Delegate or a Project; a Delegate sending + /// to another Delegate, or a Delegate pre-commiting it to a Project + function mTransfer( + uint64 idSender, + uint[] pledgesAmounts, + uint64 idReceiver + ) public + { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); + uint amount = pledgesAmounts[i] / D64; + + transfer(idSender, idPledge, amount, idReceiver); + } + } + + /// @notice Authorizes multiple amounts within multiple Pledges to be + /// withdrawn from the `vault` in an efficient single call + /// @param pledgesAmounts An array of Pledge amounts and the idPledges with + /// which the amounts are associated; these are extrapolated using the D64 + /// bitmask + function mWithdraw(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); + uint amount = pledgesAmounts[i] / D64; + + withdraw(idPledge, amount); + } + } + + /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mConfirmPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); + uint amount = pledgesAmounts[i] / D64; + + confirmPayment(idPledge, amount); + } + } + + /// @notice `mCancelPayment` allows for multiple pledges to be canceled + /// efficiently + /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated + /// using the D64 bitmask + function mCancelPayment(uint[] pledgesAmounts) public { + for (uint i = 0; i < pledgesAmounts.length; i++ ) { + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); + uint amount = pledgesAmounts[i] / D64; + + cancelPayment(idPledge, amount); + } + } + + /// @notice `mNormalizePledge` allows for multiple pledges to be + /// normalized efficiently + /// @param pledges An array of pledge IDs + function mNormalizePledge(uint64[] pledges) public { + for (uint i = 0; i < pledges.length; i++ ) { + normalizePledge(pledges[i]); } } } diff --git a/build/PledgeAdmins.sol.js b/build/PledgeAdmins.sol.js index f8940bd..bcceaf7 100644 --- a/build/PledgeAdmins.sol.js +++ b/build/PledgeAdmins.sol.js @@ -62,11 +62,15 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/PledgeAdmins_all.sol b/build/PledgeAdmins_all.sol index ed29c2a..e5ce92f 100644 --- a/build/PledgeAdmins_all.sol +++ b/build/PledgeAdmins_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -764,7 +764,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -819,7 +819,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -847,7 +847,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -885,7 +885,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -917,7 +917,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -960,7 +960,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -981,7 +981,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -998,7 +998,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -1023,7 +1023,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -1059,7 +1059,370 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { + assert(a.adminType == PledgeAdminType.Project); + + if (a.parentProject == 0) { + return(1); + } + + PledgeAdmin storage parent = _findAdmin(a.parentProject); + return _getProjectLevel(parent) + 1; + } +} + +///File: ./contracts/PledgeAdmins.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + +contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_SUBPROJECT_LEVEL = 20; + uint constant MAX_INTERPROJECT_LEVEL = 20; + + // Events + event GiverAdded(uint64 indexed idGiver); + event GiverUpdated(uint64 indexed idGiver); + event DelegateAdded(uint64 indexed idDelegate); + event DelegateUpdated(uint64 indexed idDelegate); + event ProjectAdded(uint64 indexed idProject); + event ProjectUpdated(uint64 indexed idProject); + +//////////////////// +// Public functions +//////////////////// + + /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address + /// @param name The name used to identify the Giver + /// @param url The link to the Giver's profile often an IPFS hash + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param plugin This is Giver's liquid pledge plugin allowing for + /// extended functionality + /// @return idGiver The id number used to reference this Admin + function addGiver( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) external returns (uint64 idGiver) + { + return addGiver( + msg.sender, + name, + url, + commitTime, + plugin + ); + } + + // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? + function addGiver( + address addr, + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) public returns (uint64 idGiver) + { + require(isValidPlugin(plugin)); // Plugin check + + idGiver = uint64(admins.length); + + // Save the fields + admins.push( + PledgeAdmin( + PledgeAdminType.Giver, + addr, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + GiverAdded(idGiver); + } + + /// @notice Updates a Giver's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Giver + /// @param idGiver This is the Admin id number used to specify the Giver + /// @param newAddr The new address that represents this Giver + /// @param newName The new name used to identify the Giver + /// @param newUrl The new link to the Giver's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + function updateGiver( + uint64 idGiver, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) external + { + PledgeAdmin storage giver = _findAdmin(idGiver); + require(msg.sender == giver.addr); + require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver + giver.addr = newAddr; + giver.name = newName; + giver.url = newUrl; + giver.commitTime = newCommitTime; + + GiverUpdated(idGiver); + } + + /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Delegate + /// @param url The link to the Delegate's profile often an IPFS hash + /// @param commitTime Sets the length of time in seconds that this delegate + /// can be vetoed. Whenever this delegate is in a delegate chain the time + /// allowed to veto any event must be greater than or equal to this time. + /// @param plugin This is Delegate's liquid pledge plugin allowing for + /// extended functionality + /// @return idxDelegate The id number used to reference this Delegate within + /// the PLEDGE_ADMIN array + function addDelegate( + string name, + string url, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) external returns (uint64 idDelegate) + { + require(isValidPlugin(plugin)); // Plugin check + + idDelegate = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Delegate, + msg.sender, + commitTime, + 0, + false, + plugin, + name, + url) + ); + + DelegateAdded(idDelegate); + } + + /// @notice Updates a Delegate's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin, and it must be called + /// by the current address of the Delegate + /// @param idDelegate The Admin id number used to specify the Delegate + /// @param newAddr The new address that represents this Delegate + /// @param newName The new name used to identify the Delegate + /// @param newUrl The new link to the Delegate's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds that this + /// delegate can be vetoed. Whenever this delegate is in a delegate chain + /// the time allowed to veto any event must be greater than or equal to + /// this time. + function updateDelegate( + uint64 idDelegate, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) external + { + PledgeAdmin storage delegate = _findAdmin(idDelegate); + require(msg.sender == delegate.addr); + require(delegate.adminType == PledgeAdminType.Delegate); + delegate.addr = newAddr; + delegate.name = newName; + delegate.url = newUrl; + delegate.commitTime = newCommitTime; + + DelegateUpdated(idDelegate); + } + + /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr + /// @param name The name used to identify the Project + /// @param url The link to the Project's profile often an IPFS hash + /// @param projectAdmin The address for the trusted project manager + /// @param parentProject The Admin id number for the parent project or 0 if + /// there is no parentProject + /// @param commitTime Sets the length of time in seconds the Project has to + /// veto when the Project delegates to another Delegate and they pledge + /// those funds to a project + /// @param plugin This is Project's liquid pledge plugin allowing for + /// extended functionality + /// @return idProject The id number used to reference this Admin + function addProject( + string name, + string url, + address projectAdmin, + uint64 parentProject, + uint64 commitTime, + ILiquidPledgingPlugin plugin + ) external returns (uint64 idProject) + { + require(isValidPlugin(plugin)); + + if (parentProject != 0) { + PledgeAdmin storage a = _findAdmin(parentProject); + // getProjectLevel will check that parentProject has a `Project` adminType + require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); + } + + idProject = uint64(admins.length); + + admins.push( + PledgeAdmin( + PledgeAdminType.Project, + projectAdmin, + commitTime, + parentProject, + false, + plugin, + name, + url) + ); + + ProjectAdded(idProject); + } + + /// @notice Updates a Project's info to change the address, name, url, or + /// commitTime, it cannot be used to change a plugin or a parentProject, + /// and it must be called by the current address of the Project + /// @param idProject The Admin id number used to specify the Project + /// @param newAddr The new address that represents this Project + /// @param newName The new name used to identify the Project + /// @param newUrl The new link to the Project's profile often an IPFS hash + /// @param newCommitTime Sets the length of time in seconds the Project has + /// to veto when the Project delegates to a Delegate and they pledge those + /// funds to a project + function updateProject( + uint64 idProject, + address newAddr, + string newName, + string newUrl, + uint64 newCommitTime + ) external + { + PledgeAdmin storage project = _findAdmin(idProject); + + require(msg.sender == project.addr); + require(project.adminType == PledgeAdminType.Project); + + project.addr = newAddr; + project.name = newName; + project.url = newUrl; + project.commitTime = newCommitTime; + + ProjectUpdated(idProject); + } + +///////////////////////////// +// Public constant functions +///////////////////////////// + + /// @notice A constant getter used to check how many total Admins exist + /// @return The total number of admins (Givers, Delegates and Projects) . + function numberOfPledgeAdmins() external view returns(uint) { + return admins.length - 1; + } + + /// @notice A constant getter to check the details of a specified Admin + /// @return addr Account or contract address for admin + /// @return name Name of the pledgeAdmin + /// @return url The link to the Project's profile often an IPFS hash + /// @return commitTime The length of time in seconds the Admin has to veto + /// when the Admin delegates to a Delegate and that Delegate pledges those + /// funds to a project + /// @return parentProject The Admin id number for the parent project or 0 + /// if there is no parentProject + /// @return canceled 0 for Delegates & Givers, true if a Project has been + /// canceled + /// @return plugin This is Project's liquidPledging plugin allowing for + /// extended functionality + function getPledgeAdmin(uint64 idAdmin) external view returns ( + PledgeAdminType adminType, + address addr, + string name, + string url, + uint64 commitTime, + uint64 parentProject, + bool canceled, + address plugin + ) { + PledgeAdmin storage a = _findAdmin(idAdmin); + adminType = a.adminType; + addr = a.addr; + name = a.name; + url = a.url; + commitTime = a.commitTime; + parentProject = a.parentProject; + canceled = a.canceled; + plugin = address(a.plugin); + } + + /// @notice A getter to find if a specified Project has been canceled + /// @param projectId The Admin id number used to specify the Project + /// @return True if the Project has been canceled + function isProjectCanceled(uint64 projectId) + public view returns (bool) + { + PledgeAdmin storage a = _findAdmin(projectId); + + if (a.adminType == PledgeAdminType.Giver) { + return false; + } + + assert(a.adminType == PledgeAdminType.Project); + + if (a.canceled) { + return true; + } + if (a.parentProject == 0) { + return false; + } + + return isProjectCanceled(a.parentProject); + } + +/////////////////// +// Internal methods +/////////////////// + + /// @notice A getter to look up a Admin's details + /// @param idAdmin The id for the Admin to lookup + /// @return The PledgeAdmin struct for the specified Admin + function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { + require(idAdmin < admins.length); + return admins[idAdmin]; + } + + /// @notice Find the level of authority a specific Project has + /// using a recursive loop + /// @param a The project admin being queried + /// @return The level of authority a specific Project has + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { diff --git a/build/Pledges.sol.js b/build/Pledges.sol.js index 3d4e108..e1687e3 100644 --- a/build/Pledges.sol.js +++ b/build/Pledges.sol.js @@ -58,7 +58,11 @@ exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff191690553415610 exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" +exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/Pledges_all.sol b/build/Pledges_all.sol index 4ebc643..f60c52a 100644 --- a/build/Pledges_all.sol +++ b/build/Pledges_all.sol @@ -635,7 +635,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -644,7 +644,169 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( + uint amount, + uint64 owner, + uint64 nDelegates, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState pledgeState + ) { + Pledge memory p = _findPledge(idPledge); + amount = p.amount; + owner = p.owner; + nDelegates = uint64(p.delegationChain.length); + intendedProject = p.intendedProject; + commitTime = p.commitTime; + oldPledge = p.oldPledge; + token = p.token; + pledgeState = p.pledgeState; + } + + +//////////////////// +// Internal methods +//////////////////// + + /// @notice This creates a Pledge with an initial amount of 0 if one is not + /// created already; otherwise it finds the pledge with the specified + /// attributes; all pledges technically exist, if the pledge hasn't been + /// created in this system yet it simply isn't in the hash array + /// hPledge2idx[] yet + /// @param owner The owner of the pledge being looked up + /// @param delegationChain The list of delegates in order of authority + /// @param intendedProject The project this pledge will Fund after the + /// commitTime has passed + /// @param commitTime The length of time in seconds the Giver has to + /// veto when the Giver's delegates Pledge funds to a project + /// @param oldPledge This value is used to store the pledge the current + /// pledge was came from, and in the case a Project is canceled, the Pledge + /// will revert back to it's previous state + /// @param state The pledge state: Pledged, Paying, or state + /// @return The hPledge2idx index number + function _findOrCreatePledge( + uint64 owner, + uint64[] delegationChain, + uint64 intendedProject, + uint64 commitTime, + uint64 oldPledge, + address token, + PledgeState state + ) internal returns (uint64) + { + bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); + uint64 id = hPledge2idx[hPledge]; + if (id > 0) { + return id; + } + + id = uint64(pledges.length); + hPledge2idx[hPledge] = id; + pledges.push( + Pledge( + 0, + delegationChain, + owner, + intendedProject, + commitTime, + oldPledge, + token, + state + ) + ); + return id; + } + + /// @param idPledge the id of the pledge to load from storage + /// @return The Pledge + function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { + require(idPledge < pledges.length); + return pledges[idPledge]; + } + + /// @notice A getter that searches the delegationChain for the level of + /// authority a specific delegate has within a Pledge + /// @param p The Pledge that will be searched + /// @param idDelegate The specified delegate that's searched for + /// @return If the delegate chain contains the delegate with the + /// `admins` array index `idDelegate` this returns that delegates + /// corresponding index in the delegationChain. Otherwise it returns + /// the NOTFOUND constant + function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { + for (uint i = 0; i < p.delegationChain.length; i++) { + if (p.delegationChain[i] == idDelegate) { + return uint64(i); + } + } + return NOTFOUND; + } + + /// @notice A getter to find how many old "parent" pledges a specific Pledge + /// had using a self-referential loop + /// @param p The Pledge being queried + /// @return The number of old "parent" pledges a specific Pledge had + function _getPledgeLevel(Pledge p) internal view returns(uint) { + if (p.oldPledge == 0) { + return 0; + } + Pledge storage oldP = _findPledge(p.oldPledge); + return _getPledgeLevel(oldP) + 1; // a loop lookup + } +} + + +///File: ./contracts/Pledges.sol + +pragma solidity ^0.4.18; + +/* + Copyright 2017, Jordi Baylina, RJ Ewing + Contributors: Adrià Massanet , Griff Green, + Arthur Lunn + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + + + +contract Pledges is AragonApp, LiquidPledgingStorage { + + // Limits inserted to prevent large loops that could prevent canceling + uint constant MAX_DELEGATES = 10; + + // a constant for when a delegate is requested that is not in the system + uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; + +///////////////////////////// +// Public constant functions +//////////////////////////// + + /// @notice A constant getter that returns the total number of pledges + /// @return The total number of Pledges in the system + function numberOfPledges() external view returns (uint) { + return pledges.length - 1; + } + + /// @notice A getter that returns the details of the specified pledge + /// @param idPledge the id number of the pledge being queried + /// @return the amount, owner, the number of delegates (but not the actual + /// delegates, the intendedProject (if any), the current commit time and + /// the previous pledge this pledge was derived from + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, diff --git a/build/TestSimpleDelegatePlugin.sol.js b/build/TestSimpleDelegatePlugin.sol.js index 2f9670a..f51a6e0 100644 --- a/build/TestSimpleDelegatePlugin.sol.js +++ b/build/TestSimpleDelegatePlugin.sol.js @@ -62,38 +62,45 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] exports.ERC20ByteCode = "0x" exports.ERC20RuntimeByteCode = "0x" exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.TestSimpleDelegatePluginAbi = [{"constant":true,"inputs":[],"name":"idDelegate","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_liquidPledging","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029" -exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029" +exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" +exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" exports.TestSimpleDelegatePluginFactoryAbi = [{"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] -exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd966500296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029" -exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd96650029" +exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a800296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" +exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a80029" +exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xfde1c913002ece2fae9c5b208971d9b1f56b2a30762e673901c6d2131d28919f" +exports.TestSimpleDelegatePluginAbi = [{"constant":true,"inputs":[],"name":"idDelegate","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_liquidPledging","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] +exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" +exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" +exports.TestSimpleDelegatePluginFactoryAbi = [{"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] +exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a800296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" +exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a80029" exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xfde1c913002ece2fae9c5b208971d9b1f56b2a30762e673901c6d2131d28919f" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleDelegatePlugin_all.sol b/build/TestSimpleDelegatePlugin_all.sol index ac55022..2384c4e 100644 --- a/build/TestSimpleDelegatePlugin_all.sol +++ b/build/TestSimpleDelegatePlugin_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -764,7 +764,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -819,7 +819,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -847,7 +847,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -885,7 +885,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -917,7 +917,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -960,7 +960,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -981,7 +981,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -998,7 +998,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -1023,7 +1023,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -1059,7 +1059,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { @@ -1111,7 +1111,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -1120,7 +1120,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, @@ -1311,21 +1311,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -1348,10 +1349,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -1396,7 +1404,6 @@ pragma solidity ^0.4.18; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -1443,7 +1450,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -1455,6 +1462,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -1521,7 +1532,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -1546,8 +1557,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -1566,26 +1579,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -1612,6 +1625,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -1623,17 +1637,18 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } @@ -2085,6 +2100,8 @@ pragma solidity ^0.4.18; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public @@ -2106,7 +2123,7 @@ contract LiquidPledging is LiquidPledgingBase { /// found), the amount of ETH donated in wei is added to the `amount` in /// the Giver's Pledge, and an LP transfer is done to the idReceiver for /// the full amount - /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idGiver The id of the Giver donating /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) @@ -2119,6 +2136,9 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( @@ -2155,7 +2175,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) public { - checkAdminOwner(idSender); + _checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -2169,7 +2189,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - checkAdminOwner(p.owner); + _checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -2238,7 +2258,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); - checkAdminOwner(idProject); + _checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -2254,7 +2274,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -2289,7 +2310,7 @@ contract LiquidPledging is LiquidPledgingBase { ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; transfer(idSender, idPledge, amount, idReceiver); @@ -2303,7 +2324,7 @@ contract LiquidPledging is LiquidPledgingBase { /// bitmask function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; withdraw(idPledge, amount); @@ -2316,7 +2337,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; confirmPayment(idPledge, amount); @@ -2329,7 +2350,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; cancelPayment(idPledge, amount); @@ -2341,7 +2362,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledges An array of pledge IDs function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge( pledges[i] ); + normalizePledge(pledges[i]); } } } @@ -2353,6 +2374,77 @@ pragma solidity ^0.4.11; +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleDelegatePlugin { + + uint64 public idDelegate; + LiquidPledging liquidPledging; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + liquidPledging = _liquidPledging; + initPending = true; + } + + function init( + string name, + string url, + uint64 commitTime + ) { + require(initPending); + idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} + +contract TestSimpleDelegatePluginFactory { + + function TestSimpleDelegatePluginFactory ( + LiquidPledging liquidPledging, + string name, + string url, + uint64 commitTime + ) { + TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); + d.init(name, url, commitTime); + } + +} + + +///File: ./contracts/test/TestSimpleDelegatePlugin.sol + +pragma solidity ^0.4.11; + + + // simple liquidPledging plugin contract for testing whitelist contract TestSimpleDelegatePlugin { diff --git a/build/TestSimpleProjectPlugin.sol.js b/build/TestSimpleProjectPlugin.sol.js index 20f3ee2..776b6e1 100644 --- a/build/TestSimpleProjectPlugin.sol.js +++ b/build/TestSimpleProjectPlugin.sol.js @@ -62,35 +62,39 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] exports.ERC20ByteCode = "0x" exports.ERC20RuntimeByteCode = "0x" exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" +exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" +exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory.sol.js b/build/TestSimpleProjectPluginFactory.sol.js index 84c7f83..2e688f9 100644 --- a/build/TestSimpleProjectPluginFactory.sol.js +++ b/build/TestSimpleProjectPluginFactory.sol.js @@ -62,39 +62,43 @@ exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b6035 exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0x621c6bffdae9ef3b9a85c715e7a8e34f97c9be4b90e7a447a4b113ab1f2ab453" +exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" +exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xbfcb9abb23398642833210f47e6c33d7154e619e0965db0193fa0402a26cd5f6" +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x998bef6c90de8923157a8f980353458574de63967e811ca97f7aeb25eb526212" +exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" +exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] exports.ERC20ByteCode = "0x" exports.ERC20RuntimeByteCode = "0x" exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x3562782291d1f91eb1e6c1bffa9a91c42a27c95cb5946c6b96228aba42f6cafd" +exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" +exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports.LiquidPledgingBaseRuntimeByteCode = "0x6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0x1c96590b772297d803362d45c88c024071ff2c732b1f304e16cee7ddd343a36e" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0x149a884cf8a2e3bdb9cb385d6a21215433244a3d73d248f93f13054d9ed66a35" +exports.LiquidPledgingBaseByteCode = "0x" +exports.LiquidPledgingBaseRuntimeByteCode = "0x" +exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029" +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029" -exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029" +exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" +exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" +exports['_./contracts/test/TestSimpleProjectPluginFactory.sol_keccak256'] = "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08" +exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] +exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" +exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" exports['_./contracts/test/TestSimpleProjectPluginFactory.sol_keccak256'] = "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory_all.sol b/build/TestSimpleProjectPluginFactory_all.sol index 9028831..6cdeb01 100644 --- a/build/TestSimpleProjectPluginFactory_all.sol +++ b/build/TestSimpleProjectPluginFactory_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -764,7 +764,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -819,7 +819,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -847,7 +847,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -885,7 +885,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -917,7 +917,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -960,7 +960,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -981,7 +981,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -998,7 +998,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -1023,7 +1023,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -1059,7 +1059,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { @@ -1111,7 +1111,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -1120,7 +1120,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, @@ -1311,21 +1311,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -1348,10 +1349,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -1396,7 +1404,6 @@ pragma solidity ^0.4.18; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -1443,7 +1450,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -1455,6 +1462,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -1521,7 +1532,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -1546,8 +1557,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -1566,26 +1579,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -1612,6 +1625,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -1623,17 +1637,18 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } @@ -2085,6 +2100,8 @@ pragma solidity ^0.4.18; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public @@ -2106,7 +2123,7 @@ contract LiquidPledging is LiquidPledgingBase { /// found), the amount of ETH donated in wei is added to the `amount` in /// the Giver's Pledge, and an LP transfer is done to the idReceiver for /// the full amount - /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idGiver The id of the Giver donating /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) @@ -2119,6 +2136,9 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( @@ -2155,7 +2175,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) public { - checkAdminOwner(idSender); + _checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -2169,7 +2189,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - checkAdminOwner(p.owner); + _checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -2238,7 +2258,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); - checkAdminOwner(idProject); + _checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -2254,7 +2274,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -2289,7 +2310,7 @@ contract LiquidPledging is LiquidPledgingBase { ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; transfer(idSender, idPledge, amount, idReceiver); @@ -2303,7 +2324,7 @@ contract LiquidPledging is LiquidPledgingBase { /// bitmask function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; withdraw(idPledge, amount); @@ -2316,7 +2337,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; confirmPayment(idPledge, amount); @@ -2329,7 +2350,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; cancelPayment(idPledge, amount); @@ -2341,7 +2362,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledges An array of pledge IDs function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge( pledges[i] ); + normalizePledge(pledges[i]); } } } @@ -2410,6 +2431,29 @@ pragma solidity ^0.4.11; +// simple factory for deploying TestSimpleProjectPlugin.sol contract +contract TestSimpleProjectPluginFactory { + + function deploy( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + TestSimpleProjectPlugin p = new TestSimpleProjectPlugin(); + p.init(liquidPledging, name, url, parentProject); + } + +} + + +///File: ./contracts/test/TestSimpleProjectPluginFactory.sol + +pragma solidity ^0.4.11; + + + + // simple factory for deploying TestSimpleProjectPlugin.sol contract contract TestSimpleProjectPluginFactory { diff --git a/build/TestSimpleProjectPlugin_all.sol b/build/TestSimpleProjectPlugin_all.sol index a6ff0a6..13efb93 100644 --- a/build/TestSimpleProjectPlugin_all.sol +++ b/build/TestSimpleProjectPlugin_all.sol @@ -650,7 +650,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) public { + function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { pluginInstanceWhitelist[addr] = true; } @@ -668,7 +668,7 @@ contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgi pluginContractWhitelist[contractHash] = false; } - function removeValidPluginInstance(address addr) external auth(PLUGIN_MANAGER_ROLE) { + function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { pluginInstanceWhitelist[addr] = false; } @@ -764,7 +764,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) + ) external returns (uint64 idGiver) { return addGiver( msg.sender, @@ -819,7 +819,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage giver = _findAdmin(idGiver); require(msg.sender == giver.addr); @@ -847,7 +847,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string url, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idDelegate) + ) external returns (uint64 idDelegate) { require(isValidPlugin(plugin)); // Plugin check @@ -885,7 +885,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage delegate = _findAdmin(idDelegate); require(msg.sender == delegate.addr); @@ -917,7 +917,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint64 parentProject, uint64 commitTime, ILiquidPledgingPlugin plugin - ) public returns (uint64 idProject) + ) external returns (uint64 idProject) { require(isValidPlugin(plugin)); @@ -960,7 +960,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { string newName, string newUrl, uint64 newCommitTime - ) public + ) external { PledgeAdmin storage project = _findAdmin(idProject); @@ -981,7 +981,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @notice A constant getter used to check how many total Admins exist /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() public constant returns(uint) { + function numberOfPledgeAdmins() external view returns(uint) { return admins.length - 1; } @@ -998,7 +998,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// canceled /// @return plugin This is Project's liquidPledging plugin allowing for /// extended functionality - function getPledgeAdmin(uint64 idAdmin) public view returns ( + function getPledgeAdmin(uint64 idAdmin) external view returns ( PledgeAdminType adminType, address addr, string name, @@ -1023,7 +1023,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// @param projectId The Admin id number used to specify the Project /// @return True if the Project has been canceled function isProjectCanceled(uint64 projectId) - public constant returns (bool) + public view returns (bool) { PledgeAdmin storage a = _findAdmin(projectId); @@ -1059,7 +1059,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { /// using a recursive loop /// @param a The project admin being queried /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal returns(uint64) { + function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { assert(a.adminType == PledgeAdminType.Project); if (a.parentProject == 0) { @@ -1111,7 +1111,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @notice A constant getter that returns the total number of pledges /// @return The total number of Pledges in the system - function numberOfPledges() public view returns (uint) { + function numberOfPledges() external view returns (uint) { return pledges.length - 1; } @@ -1120,7 +1120,7 @@ contract Pledges is AragonApp, LiquidPledgingStorage { /// @return the amount, owner, the number of delegates (but not the actual /// delegates, the intendedProject (if any), the current commit time and /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) public view returns( + function getPledge(uint64 idPledge) external view returns( uint amount, uint64 owner, uint64 nDelegates, @@ -1311,21 +1311,22 @@ contract EscapableApp is AragonApp { mapping (address=>bool) private escapeBlacklist; // Token contract addresses uint[20] private storageOffset; // reserve 20 slots for future upgrades + function EscapableApp(address _escapeHatchDestination) public { + _init(_escapeHatchDestination); + } + /// @param _escapeHatchDestination The address of a safe location (usu a /// Multisig) to send the ether held in this contract; if a neutral address /// is required, the WHG Multisig is an option: /// 0x8Ff920020c8AD673661c8117f2855C384758C572 function initialize(address _escapeHatchDestination) onlyInit public { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; + _init(_escapeHatchDestination); } /// @notice The `escapeHatch()` should only be called as a last resort if a /// security issue is uncovered or something unexpected happened /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) public authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { + function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { require(escapeBlacklist[_token]==false); uint256 balance; @@ -1348,10 +1349,17 @@ contract EscapableApp is AragonApp { /// @param _token the token address being queried /// @return False if `_token` is in the blacklist and can't be taken out of /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) constant public returns (bool) { + function isTokenEscapable(address _token) view external returns (bool) { return !escapeBlacklist[_token]; } + function _init(address _escapeHatchDestination) internal { + initialized(); + require(_escapeHatchDestination != 0x0); + + escapeHatchDestination = _escapeHatchDestination; + } + /// @notice Creates the blacklist of tokens that are not able to be taken /// out of the contract; can only be done at the deployment, and the logic /// to add to the blacklist will be in the constructor of a child contract @@ -1396,7 +1404,6 @@ pragma solidity ^0.4.18; /// data structures contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - // Event Declarations event Transfer(uint indexed from, uint indexed to, uint amount); event CancelProject(uint indexed idProject); @@ -1443,7 +1450,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index /// @param idPledge The id number representing the pledge being queried /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) public view returns( + function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( uint64 idDelegate, address addr, string name @@ -1455,6 +1462,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins name = delegate.name; } +/////////////////// +// Public functions +/////////////////// + /// @notice Only affects pledges with the Pledged PledgeState for 2 things: /// #1: Checks if the pledge should be committed. This means that /// if the pledge has an intendedProject and it is past the @@ -1521,7 +1532,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins /// @notice A check to see if the msg.sender is the owner or the /// plugin contract for a specific Admin /// @param idAdmin The id of the admin being checked - function checkAdminOwner(uint64 idAdmin) internal constant { + function _checkAdminOwner(uint64 idAdmin) internal view { PledgeAdmin storage a = _findAdmin(idAdmin); require(msg.sender == address(a.plugin) || msg.sender == a.addr); } @@ -1546,8 +1557,10 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins if (receiver.adminType == PledgeAdminType.Giver) { _transferOwnershipToGiver(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Project) { _transferOwnershipToProject(idPledge, amount, idReceiver); + return; } else if (receiver.adminType == PledgeAdminType.Delegate) { uint recieverDIdx = _getDelegateIdx(p, idReceiver); @@ -1566,26 +1579,26 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.token, PledgeState.Pledged); _doTransfer(idPledge, toPledge, amount); - } else { - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; } - } else { - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - } - } else { - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); + _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); + return; + } + // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, + // so we want to reset the delegationChain + idPledge = _undelegate( + idPledge, + amount, + p.delegationChain.length + ); + _appendDelegate(idPledge, amount, idReceiver); + return; } - return; + + // This should never be reached as the receiver.adminType + // should always be either a Giver, Project, or Delegate + assert(false); } // If the sender is a Delegate @@ -1612,6 +1625,7 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; // And part of the delegationChain and is after the sender, then // all of the other delegates after the sender are removed and @@ -1623,17 +1637,18 @@ contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins p.delegationChain.length - senderDIdx - 1 ); _appendDelegate(idPledge, amount, idReceiver); + return; + } // And is already part of the delegate chain but is before the // sender, then the sender and all of the other delegates after // the RECEIVER are removed from the delegationChain - } else if (receiverDIdx <= senderDIdx) {//TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - } + //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? + _undelegate( + idPledge, + amount, + p.delegationChain.length - receiverDIdx - 1 + ); return; } @@ -2085,6 +2100,8 @@ pragma solidity ^0.4.18; /// to allow for expanded functionality. contract LiquidPledging is LiquidPledgingBase { + function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { + } function addGiverAndDonate(uint64 idReceiver, address token, uint amount) public @@ -2106,7 +2123,7 @@ contract LiquidPledging is LiquidPledgingBase { /// found), the amount of ETH donated in wei is added to the `amount` in /// the Giver's Pledge, and an LP transfer is done to the idReceiver for /// the full amount - /// @param idGiver The id of the Giver donating; if 0, a new id is created + /// @param idGiver The id of the Giver donating /// @param idReceiver The Admin receiving the donation; can be any Admin: /// the Giver themselves, another Giver, a Delegate or a Project function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) @@ -2119,6 +2136,9 @@ contract LiquidPledging is LiquidPledgingBase { PledgeAdmin storage sender = _findAdmin(idGiver); require(sender.adminType == PledgeAdminType.Giver); + // TODO should this be done at the end of this function? + // what re-entrancy issues are there if this is done here? + // if done at the end of the function, will that affect plugins? require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` uint64 idPledge = _findOrCreatePledge( @@ -2155,7 +2175,7 @@ contract LiquidPledging is LiquidPledgingBase { uint64 idReceiver ) public { - checkAdminOwner(idSender); + _checkAdminOwner(idSender); _transfer(idSender, idPledge, amount, idReceiver); } @@ -2169,7 +2189,7 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.pledgeState == PledgeState.Pledged); - checkAdminOwner(p.owner); + _checkAdminOwner(p.owner); uint64 idNewPledge = _findOrCreatePledge( p.owner, @@ -2238,7 +2258,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param idProject Id of the project that is to be canceled function cancelProject(uint64 idProject) public { PledgeAdmin storage project = _findAdmin(idProject); - checkAdminOwner(idProject); + _checkAdminOwner(idProject); project.canceled = true; CancelProject(idProject); @@ -2254,7 +2274,8 @@ contract LiquidPledging is LiquidPledgingBase { Pledge storage p = _findPledge(idPledge); require(p.oldPledge != 0); - checkAdminOwner(p.owner); + require(p.pledgeState == PledgeState.Pledged); + _checkAdminOwner(p.owner); uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); _doTransfer(idPledge, oldPledge, amount); @@ -2289,7 +2310,7 @@ contract LiquidPledging is LiquidPledgingBase { ) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; transfer(idSender, idPledge, amount, idReceiver); @@ -2303,7 +2324,7 @@ contract LiquidPledging is LiquidPledgingBase { /// bitmask function mWithdraw(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; withdraw(idPledge, amount); @@ -2316,7 +2337,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mConfirmPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; confirmPayment(idPledge, amount); @@ -2329,7 +2350,7 @@ contract LiquidPledging is LiquidPledgingBase { /// using the D64 bitmask function mCancelPayment(uint[] pledgesAmounts) public { for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64( pledgesAmounts[i] & (D64-1) ); + uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); uint amount = pledgesAmounts[i] / D64; cancelPayment(idPledge, amount); @@ -2341,7 +2362,7 @@ contract LiquidPledging is LiquidPledgingBase { /// @param pledges An array of pledge IDs function mNormalizePledge(uint64[] pledges) public { for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge( pledges[i] ); + normalizePledge(pledges[i]); } } } @@ -2353,6 +2374,62 @@ pragma solidity ^0.4.11; +// simple liquidPledging plugin contract for testing whitelist +contract TestSimpleProjectPlugin { + + uint64 public idProject; + bool initPending; + + event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); + + function TestSimpleProjectPlugin() { + require(msg.sender != tx.origin); // Avoids being created directly by mistake. + initPending = true; + } + + function init( + LiquidPledging liquidPledging, + string name, + string url, + uint64 parentProject + ) { + require(initPending); + idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); + initPending = false; + } + + function beforeTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external returns (uint maxAllowed) { + require(!initPending); + BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + + function afterTransfer( + uint64 pledgeAdmin, + uint64 pledgeFrom, + uint64 pledgeTo, + uint64 context, + uint amount + ) external { + require(!initPending); + AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); + } + +} + + +///File: ./contracts/test/TestSimpleProjectPlugin.sol + +pragma solidity ^0.4.11; + + + // simple liquidPledging plugin contract for testing whitelist contract TestSimpleProjectPlugin { diff --git a/build/solcStandardInput.json b/build/solcStandardInput.json index d948437..a5ff14b 100644 --- a/build/solcStandardInput.json +++ b/build/solcStandardInput.json @@ -1,6 +1,308 @@ { "language": "Solidity", - "sources": {}, + "sources": { + "./contracts/EscapableApp.sol": { + "keccak256": "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/EscapableApp.sol" + ], + "content": "pragma solidity ^0.4.18;\n/*\n Copyright 2016, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n// import \"./Owned.sol\";\nimport \"giveth-common-contracts/contracts/ERC20.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\n\n/// @dev `EscapableApp` is a base level contract; it creates an escape hatch\n/// function that can be called in an\n/// emergency that will allow designated addresses to send any ether or tokens\n/// held in the contract to an `escapeHatchDestination` as long as they were\n/// not blacklisted\ncontract EscapableApp is AragonApp {\n // warning whoever has this role can move all funds to the `escapeHatchDestination`\n bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256(\"ESCAPE_HATCH_CALLER_ROLE\");\n\n event EscapeHatchBlackistedToken(address token);\n event EscapeHatchCalled(address token, uint amount);\n\n address public escapeHatchDestination;\n mapping (address=>bool) private escapeBlacklist; // Token contract addresses\n uint[20] private storageOffset; // reserve 20 slots for future upgrades\n\n function EscapableApp(address _escapeHatchDestination) public {\n _init(_escapeHatchDestination);\n }\n\n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _escapeHatchDestination) onlyInit public {\n _init(_escapeHatchDestination);\n }\n\n /// @notice The `escapeHatch()` should only be called as a last resort if a\n /// security issue is uncovered or something unexpected happened\n /// @param _token to transfer, use 0x0 for ether\n function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) {\n require(escapeBlacklist[_token]==false);\n\n uint256 balance;\n\n /// @dev Logic for ether\n if (_token == 0x0) {\n balance = this.balance;\n escapeHatchDestination.transfer(balance);\n EscapeHatchCalled(_token, balance);\n return;\n }\n /// @dev Logic for tokens\n ERC20 token = ERC20(_token);\n balance = token.balanceOf(this);\n require(token.transfer(escapeHatchDestination, balance));\n EscapeHatchCalled(_token, balance);\n }\n\n /// @notice Checks to see if `_token` is in the blacklist of tokens\n /// @param _token the token address being queried\n /// @return False if `_token` is in the blacklist and can't be taken out of\n /// the contract via the `escapeHatch()`\n function isTokenEscapable(address _token) view external returns (bool) {\n return !escapeBlacklist[_token];\n }\n\n function _init(address _escapeHatchDestination) internal {\n initialized();\n require(_escapeHatchDestination != 0x0);\n\n escapeHatchDestination = _escapeHatchDestination;\n }\n\n /// @notice Creates the blacklist of tokens that are not able to be taken\n /// out of the contract; can only be done at the deployment, and the logic\n /// to add to the blacklist will be in the constructor of a child contract\n /// @param _token the token contract address that is to be blacklisted \n function _blacklistEscapeToken(address _token) internal {\n escapeBlacklist[_token] = true;\n EscapeHatchBlackistedToken(_token);\n }\n}\n" + }, + "giveth-common-contracts/contracts/ERC20.sol": { + "keccak256": "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/giveth-common-contracts/contracts/ERC20.sol" + ], + "content": "pragma solidity ^0.4.15;\n\n\n/**\n * @title ERC20\n * @dev A standard interface for tokens.\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n */\ncontract ERC20 {\n \n /// @dev Returns the total token supply\n function totalSupply() public constant returns (uint256 supply);\n\n /// @dev Returns the account balance of the account with address _owner\n function balanceOf(address _owner) public constant returns (uint256 balance);\n\n /// @dev Transfers _value number of tokens to address _to\n function transfer(address _to, uint256 _value) public returns (bool success);\n\n /// @dev Transfers _value number of tokens from address _from to address _to\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);\n\n /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount\n function approve(address _spender, uint256 _value) public returns (bool success);\n\n /// @dev Returns the amount which _spender is still allowed to withdraw from _owner\n function allowance(address _owner, address _spender) public constant returns (uint256 remaining);\n\n event Transfer(address indexed _from, address indexed _to, uint256 _value);\n event Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n}\n" + }, + "@aragon/os/contracts/acl/IACL.sol": { + "keccak256": "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/acl/IACL.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n\ninterface IACL {\n function initialize(address permissionsCreator) public;\n function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);\n}\n" + }, + "@aragon/os/contracts/kernel/IKernel.sol": { + "keccak256": "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/IKernel.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"../acl/IACL.sol\";\n\ninterface IKernel {\n event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app);\n\n function acl() public view returns (IACL);\n function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);\n\n function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id);\n function getApp(bytes32 id) public view returns (address);\n}" + }, + "@aragon/os/contracts/apps/AppStorage.sol": { + "keccak256": "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppStorage.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"../kernel/IKernel.sol\";\n\n\ncontract AppStorage {\n IKernel public kernel;\n bytes32 public appId;\n address internal pinnedCode; // used by Proxy Pinned\n uint256 internal initializationBlock; // used by Initializable\n uint256[95] private storageOffset; // forces App storage to start at after 100 slots\n uint256 private offset;\n}\n" + }, + "@aragon/os/contracts/common/Initializable.sol": { + "keccak256": "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/common/Initializable.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"../apps/AppStorage.sol\";\n\n\ncontract Initializable is AppStorage {\n modifier onlyInit {\n require(initializationBlock == 0);\n _;\n }\n\n /**\n * @return Block number in which the contract was initialized\n */\n function getInitializationBlock() public view returns (uint256) {\n return initializationBlock;\n }\n\n /**\n * @dev Function to be called by top level contract after initialization has finished.\n */\n function initialized() internal onlyInit {\n initializationBlock = getBlockNumber();\n }\n\n /**\n * @dev Returns the current block number.\n * Using a function rather than `block.number` allows us to easily mock the block number in\n * tests.\n */\n function getBlockNumber() internal view returns (uint256) {\n return block.number;\n }\n}\n" + }, + "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { + "keccak256": "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n\ninterface IEVMScriptExecutor {\n function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes);\n}\n" + }, + "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { + "keccak256": "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol" + ], + "content": "pragma solidity 0.4.18;\n\n\ncontract EVMScriptRegistryConstants {\n bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256(\"evmreg.aragonpm.eth\");\n bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256(\"app\"), EVMSCRIPT_REGISTRY_APP_ID);\n}\n\n\ninterface IEVMScriptRegistry {\n function addScriptExecutor(address executor) external returns (uint id);\n function disableScriptExecutor(uint256 executorId) external;\n\n function getScriptExecutor(bytes script) public view returns (address);\n}" + }, + "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { + "keccak256": "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/ScriptHelpers.sol" + ], + "content": "pragma solidity 0.4.18;\n\n\nlibrary ScriptHelpers {\n // To test with JS and compare with actual encoder. Maintaining for reference.\n // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) }\n // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) }\n // This is truly not beautiful but lets no daydream to the day solidity gets reflection features\n\n function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) {\n return encode(_a, _b, _c);\n }\n\n function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) {\n // A is positioned after the 3 position words\n uint256 aPosition = 0x60;\n uint256 bPosition = aPosition + 32 * abiLength(_a);\n uint256 cPosition = bPosition + 32 * abiLength(_b);\n uint256 length = cPosition + 32 * abiLength(_c);\n\n d = new bytes(length);\n assembly {\n // Store positions\n mstore(add(d, 0x20), aPosition)\n mstore(add(d, 0x40), bPosition)\n mstore(add(d, 0x60), cPosition)\n }\n\n // Copy memory to correct position\n copy(d, getPtr(_a), aPosition, _a.length);\n copy(d, getPtr(_b), bPosition, _b.length);\n copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address\n }\n\n function abiLength(bytes memory _a) internal pure returns (uint256) {\n // 1 for length +\n // memory words + 1 if not divisible for 32 to offset word\n return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0);\n }\n\n function abiLength(address[] _a) internal pure returns (uint256) {\n // 1 for length + 1 per item\n return 1 + _a.length;\n }\n\n function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure {\n uint dest;\n assembly {\n dest := add(add(_d, 0x20), _pos)\n }\n memcpy(dest, _src, _length + 32);\n }\n\n function getPtr(bytes memory _x) internal pure returns (uint256 ptr) {\n assembly {\n ptr := _x\n }\n }\n\n function getPtr(address[] memory _x) internal pure returns (uint256 ptr) {\n assembly {\n ptr := _x\n }\n }\n\n function getSpecId(bytes _script) internal pure returns (uint32) {\n return uint32At(_script, 0);\n }\n\n function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) {\n assembly {\n result := mload(add(_data, add(0x20, _location)))\n }\n }\n\n function addressAt(bytes _data, uint256 _location) internal pure returns (address result) {\n uint256 word = uint256At(_data, _location);\n\n assembly {\n result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000),\n 0x1000000000000000000000000)\n }\n }\n\n function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) {\n uint256 word = uint256At(_data, _location);\n\n assembly {\n result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000),\n 0x100000000000000000000000000000000000000000000000000000000)\n }\n }\n\n function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) {\n assembly {\n result := add(_data, add(0x20, _location))\n }\n }\n\n function toBytes(bytes4 _sig) internal pure returns (bytes) {\n bytes memory payload = new bytes(4);\n payload[0] = bytes1(_sig);\n payload[1] = bytes1(_sig << 8);\n payload[2] = bytes1(_sig << 16);\n payload[3] = bytes1(_sig << 24);\n return payload;\n }\n\n function memcpy(uint _dest, uint _src, uint _len) public pure {\n uint256 src = _src;\n uint256 dest = _dest;\n uint256 len = _len;\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n uint mask = 256 ** (32 - len) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n}" + }, + "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { + "keccak256": "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/EVMScriptRunner.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"../apps/AppStorage.sol\";\nimport \"./IEVMScriptExecutor.sol\";\nimport \"./IEVMScriptRegistry.sol\";\n\nimport \"./ScriptHelpers.sol\";\n\n\ncontract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants {\n using ScriptHelpers for bytes;\n\n function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) {\n // TODO: Too much data flying around, maybe extracting spec id here is cheaper\n address executorAddr = getExecutor(_script);\n require(executorAddr != address(0));\n\n bytes memory calldataArgs = _script.encode(_input, _blacklist);\n bytes4 sig = IEVMScriptExecutor(0).execScript.selector;\n\n require(executorAddr.delegatecall(sig, calldataArgs));\n\n return returnedDataDecoded();\n }\n\n function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) {\n return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script));\n }\n\n // TODO: Internal\n function getExecutorRegistry() internal view returns (IEVMScriptRegistry) {\n address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP);\n return IEVMScriptRegistry(registryAddr);\n }\n\n /**\n * @dev copies and returns last's call data. Needs to ABI decode first\n */\n function returnedDataDecoded() internal view returns (bytes ret) {\n assembly {\n let size := returndatasize\n switch size\n case 0 {}\n default {\n ret := mload(0x40) // free mem ptr get\n mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set\n returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data\n }\n }\n return ret;\n }\n\n modifier protectState {\n address preKernel = kernel;\n bytes32 preAppId = appId;\n _; // exec\n require(kernel == preKernel);\n require(appId == preAppId);\n }\n}" + }, + "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { + "keccak256": "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/acl/ACLSyntaxSugar.sol" + ], + "content": "pragma solidity 0.4.18;\n\n\ncontract ACLSyntaxSugar {\n function arr() internal pure returns (uint256[] r) {}\n\n function arr(bytes32 _a) internal pure returns (uint256[] r) {\n return arr(uint256(_a));\n }\n\n function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b));\n }\n\n function arr(address _a) internal pure returns (uint256[] r) {\n return arr(uint256(_a));\n }\n\n function arr(address _a, address _b) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b));\n }\n\n function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) {\n return arr(uint256(_a), _b, _c);\n }\n\n function arr(address _a, uint256 _b) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b));\n }\n\n function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b), _c, _d, _e);\n }\n\n function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b), uint256(_c));\n }\n\n function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b), uint256(_c));\n }\n\n function arr(uint256 _a) internal pure returns (uint256[] r) {\n r = new uint256[](1);\n r[0] = _a;\n }\n\n function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) {\n r = new uint256[](2);\n r[0] = _a;\n r[1] = _b;\n }\n\n function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) {\n r = new uint256[](3);\n r[0] = _a;\n r[1] = _b;\n r[2] = _c;\n }\n\n function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) {\n r = new uint256[](4);\n r[0] = _a;\n r[1] = _b;\n r[2] = _c;\n r[3] = _d;\n }\n\n function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) {\n r = new uint256[](5);\n r[0] = _a;\n r[1] = _b;\n r[2] = _c;\n r[3] = _d;\n r[4] = _e;\n }\n}\n\n\ncontract ACLHelpers {\n function decodeParamOp(uint256 _x) internal pure returns (uint8 b) {\n return uint8(_x >> (8 * 30));\n }\n\n function decodeParamId(uint256 _x) internal pure returns (uint8 b) {\n return uint8(_x >> (8 * 31));\n }\n\n function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) {\n a = uint32(_x);\n b = uint32(_x >> (8 * 4));\n c = uint32(_x >> (8 * 8));\n }\n}\n" + }, + "@aragon/os/contracts/apps/AragonApp.sol": { + "keccak256": "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AragonApp.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"./AppStorage.sol\";\nimport \"../common/Initializable.sol\";\nimport \"../evmscript/EVMScriptRunner.sol\";\nimport \"../acl/ACLSyntaxSugar.sol\";\n\n\ncontract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner {\n modifier auth(bytes32 _role) {\n require(canPerform(msg.sender, _role, new uint256[](0)));\n _;\n }\n\n modifier authP(bytes32 _role, uint256[] params) {\n require(canPerform(msg.sender, _role, params));\n _;\n }\n\n function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) {\n bytes memory how; // no need to init memory as it is never used\n if (params.length > 0) {\n uint256 byteLength = params.length * 32;\n assembly {\n how := params // forced casting\n mstore(how, byteLength)\n }\n }\n return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how);\n }\n}\n" + }, + "./contracts/ILiquidPledgingPlugin.sol": { + "keccak256": "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/ILiquidPledgingPlugin.sol" + ], + "content": "pragma solidity ^0.4.11;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: Adrià Massanet , RJ Ewing, Griff\n Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n\n/// @dev `ILiquidPledgingPlugin` is the basic interface for any\n/// liquid pledging plugin\ncontract ILiquidPledgingPlugin {\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated before a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function beforeTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount ) public returns (uint maxAllowed);\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated after a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function afterTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount\n ) public;\n}\n" + }, + "./contracts/LiquidPledging.sol": { + "keccak256": "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledging.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledgingBase.sol\";\n\n/// @dev `LiquidPledging` allows for liquid pledging through the use of\n/// internal id structures and delegate chaining. All basic operations for\n/// handling liquid pledging are supplied as well as plugin features\n/// to allow for expanded functionality.\ncontract LiquidPledging is LiquidPledgingBase {\n\n function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public {\n }\n\n function addGiverAndDonate(uint64 idReceiver, address token, uint amount)\n public\n {\n addGiverAndDonate(idReceiver, msg.sender, token, amount);\n }\n\n function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount)\n public\n {\n require(donorAddress != 0);\n // default to a 3 day (259200 seconds) commitTime\n uint64 idGiver = addGiver(donorAddress, \"\", \"\", 259200, ILiquidPledgingPlugin(0));\n donate(idGiver, idReceiver, token, amount);\n }\n\n /// @notice This is how value enters the system and how pledges are created;\n /// the ether is sent to the vault, an pledge for the Giver is created (or\n /// found), the amount of ETH donated in wei is added to the `amount` in\n /// the Giver's Pledge, and an LP transfer is done to the idReceiver for\n /// the full amount\n /// @param idGiver The id of the Giver donating\n /// @param idReceiver The Admin receiving the donation; can be any Admin:\n /// the Giver themselves, another Giver, a Delegate or a Project\n function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount)\n public\n {\n require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer\n require(amount > 0);\n require(token != 0x0);\n\n PledgeAdmin storage sender = _findAdmin(idGiver);\n require(sender.adminType == PledgeAdminType.Giver);\n\n // TODO should this be done at the end of this function?\n // what re-entrancy issues are there if this is done here?\n // if done at the end of the function, will that affect plugins?\n require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault`\n\n uint64 idPledge = _findOrCreatePledge(\n idGiver,\n new uint64[](0), // Creates empty array for delegationChain\n 0,\n 0,\n 0,\n token,\n PledgeState.Pledged\n );\n\n Pledge storage pTo = _findPledge(idPledge);\n pTo.amount += amount;\n\n Transfer(0, idPledge, amount);\n\n _transfer(idGiver, idPledge, amount, idReceiver);\n }\n\n /// @notice Transfers amounts between pledges for internal accounting\n /// @param idSender Id of the Admin that is transferring the amount from\n /// Pledge to Pledge; this admin must have permissions to move the value\n /// @param idPledge Id of the pledge that's moving the value\n /// @param amount Quantity of ETH (in wei) that this pledge is transferring \n /// the authority to withdraw from the vault\n /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending\n /// to a Giver, a Delegate or a Project; a Delegate sending to another\n /// Delegate, or a Delegate pre-commiting it to a Project \n function transfer( \n uint64 idSender,\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) public\n {\n _checkAdminOwner(idSender);\n _transfer(idSender, idPledge, amount, idReceiver);\n }\n\n /// @notice Authorizes a payment be made from the `vault` can be used by the\n /// Giver to veto a pre-committed donation from a Delegate to an\n /// intendedProject\n /// @param idPledge Id of the pledge that is to be redeemed into ether\n /// @param amount Quantity of ether (in wei) to be authorized\n function withdraw(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge); // Updates pledge info \n\n Pledge storage p = _findPledge(idPledge);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paying\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n\n PledgeAdmin storage owner = _findAdmin(p.owner);\n vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount);\n }\n\n /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState\n /// from Paying to Paid\n /// @param idPledge Id of the pledge that is to be withdrawn\n /// @param amount Quantity of ether (in wei) to be withdrawn\n function confirmPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paid\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n }\n\n /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState\n /// from Paying back to Pledged\n /// @param idPledge Id of the pledge that's withdraw is to be canceled\n /// @param amount Quantity of ether (in wei) to be canceled\n function cancelPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n // When a payment is canceled, never is assigned to a project.\n uint64 idOldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n\n idOldPledge = normalizePledge(idOldPledge);\n\n _doTransfer(idPledge, idOldPledge, amount);\n }\n\n /// @notice Changes the `project.canceled` flag to `true`; cannot be undone\n /// @param idProject Id of the project that is to be canceled\n function cancelProject(uint64 idProject) public {\n PledgeAdmin storage project = _findAdmin(idProject);\n _checkAdminOwner(idProject);\n project.canceled = true;\n\n CancelProject(idProject);\n }\n\n /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that\n /// that sent it there in the first place, a Ctrl-z \n /// @param idPledge Id of the pledge that is to be canceled\n /// @param amount Quantity of ether (in wei) to be transfered to the \n /// `oldPledge`\n function cancelPledge(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge);\n\n Pledge storage p = _findPledge(idPledge);\n require(p.oldPledge != 0);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge);\n _doTransfer(idPledge, oldPledge, amount);\n }\n\n\n////////\n// Multi pledge methods\n////////\n\n // @dev This set of functions makes moving a lot of pledges around much more\n // efficient (saves gas) than calling these functions in series\n \n \n /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods\n uint constant D64 = 0x10000000000000000;\n\n /// @notice Transfers multiple amounts within multiple Pledges in an\n /// efficient single call \n /// @param idSender Id of the Admin that is transferring the amounts from\n /// all the Pledges; this admin must have permissions to move the value\n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or \n /// Project sending to a Giver, a Delegate or a Project; a Delegate sending\n /// to another Delegate, or a Delegate pre-commiting it to a Project \n function mTransfer(\n uint64 idSender,\n uint[] pledgesAmounts,\n uint64 idReceiver\n ) public \n {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n transfer(idSender, idPledge, amount, idReceiver);\n }\n }\n\n /// @notice Authorizes multiple amounts within multiple Pledges to be\n /// withdrawn from the `vault` in an efficient single call \n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n function mWithdraw(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n withdraw(idPledge, amount);\n }\n }\n\n /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mConfirmPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n confirmPayment(idPledge, amount);\n }\n }\n\n /// @notice `mCancelPayment` allows for multiple pledges to be canceled\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mCancelPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n cancelPayment(idPledge, amount);\n }\n }\n\n /// @notice `mNormalizePledge` allows for multiple pledges to be\n /// normalized efficiently\n /// @param pledges An array of pledge IDs\n function mNormalizePledge(uint64[] pledges) public {\n for (uint i = 0; i < pledges.length; i++ ) {\n normalizePledge(pledges[i]);\n }\n }\n}\n" + }, + "./contracts/LiquidPledgingStorage.sol": { + "keccak256": "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingStorage.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"./ILiquidPledgingPlugin.sol\";\n\n/// @dev This is an interface for `LPVault` which serves as a secure storage for\n/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes\n/// payments can Pledges be converted for ETH\ninterface ILPVault {\n function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public;\n}\n\n/// This contract contains all state variables used in LiquidPledging contracts\n/// This is done to have everything in 1 location, b/c state variable layout\n/// is MUST have be the same when performing an upgrade.\ncontract LiquidPledgingStorage {\n enum PledgeAdminType { Giver, Delegate, Project }\n enum PledgeState { Pledged, Paying, Paid }\n\n /// @dev This struct defines the details of a `PledgeAdmin` which are \n /// commonly referenced by their index in the `admins` array\n /// and can own pledges and act as delegates\n struct PledgeAdmin { \n PledgeAdminType adminType; // Giver, Delegate or Project\n address addr; // Account or contract address for admin\n uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto\n uint64 parentProject; // Only for projects\n bool canceled; //Always false except for canceled projects\n\n /// @dev if the plugin is 0x0 then nothing happens, if its an address\n // than that smart contract is called when appropriate\n ILiquidPledgingPlugin plugin; \n string name;\n string url; // Can be IPFS hash\n }\n\n struct Pledge {\n uint amount;\n uint64[] delegationChain; // List of delegates in order of authority\n uint64 owner; // PledgeAdmin\n uint64 intendedProject; // Used when delegates are sending to projects\n uint64 commitTime; // When the intendedProject will become the owner\n uint64 oldPledge; // Points to the id that this Pledge was derived from\n address token;\n PledgeState pledgeState; // Pledged, Paying, Paid\n }\n\n PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin\n Pledge[] pledges;\n /// @dev this mapping allows you to search for a specific pledge's \n /// index number by the hash of that pledge\n mapping (bytes32 => uint64) hPledge2idx;\n\n // this whitelist is for non-proxied plugins\n mapping (bytes32 => bool) pluginContractWhitelist;\n // this whitelist is for proxied plugins\n mapping (address => bool) pluginInstanceWhitelist;\n bool public whitelistDisabled = false;\n\n ILPVault public vault;\n\n // reserve 50 slots for future upgrades. I'm not sure if this is necessary \n // but b/c of multiple inheritance used in lp, better safe then sorry.\n // especially since it is free\n uint[50] private storageOffset;\n}" + }, + "./contracts/LiquidPledgingACLHelpers.sol": { + "keccak256": "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingACLHelpers.sol" + ], + "content": "pragma solidity ^0.4.18;\n\ncontract LiquidPledgingACLHelpers {\n function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) {\n r = new uint[](4);\n r[0] = uint(a);\n r[1] = uint(b);\n r[2] = uint(c);\n r[3] = d;\n r[4] = uint(e);\n }\n\n function arr(bool a) internal pure returns (uint[] r) {\n r = new uint[](1);\n uint _a;\n assembly {\n _a := a // forced casting\n }\n r[0] = _a;\n }\n}" + }, + "./contracts/LiquidPledgingPlugins.sol": { + "keccak256": "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingPlugins.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"./LiquidPledgingStorage.sol\";\nimport \"./LiquidPledgingACLHelpers.sol\";\n\ncontract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers {\n\n bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256(\"PLUGIN_MANAGER_ROLE\");\n\n function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external {\n pluginInstanceWhitelist[addr] = true;\n }\n\n function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public {\n pluginContractWhitelist[contractHash] = true;\n }\n\n function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) {\n for (uint8 i = 0; i < contractHashes.length; i++) {\n addValidPluginContract(contractHashes[i]);\n }\n }\n\n function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) {\n pluginContractWhitelist[contractHash] = false;\n }\n\n function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) {\n pluginInstanceWhitelist[addr] = false;\n }\n\n function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) {\n whitelistDisabled = !useWhitelist;\n }\n\n function isValidPlugin(address addr) public view returns(bool) {\n if (whitelistDisabled || addr == 0x0) {\n return true;\n }\n\n // first check pluginInstances\n if (pluginInstanceWhitelist[addr]) {\n return true;\n }\n\n // if the addr isn't a valid instance, check the contract code\n bytes32 contractHash = getCodeHash(addr);\n\n return pluginContractWhitelist[contractHash];\n }\n\n function getCodeHash(address addr) public view returns(bytes32) {\n bytes memory o_code;\n assembly {\n // retrieve the size of the code, this needs assembly\n let size := extcodesize(addr)\n // allocate output byte array - this could also be done without assembly\n // by using o_code = new bytes(size)\n o_code := mload(0x40)\n mstore(o_code, size) // store length in memory\n // actually retrieve the code, this needs assembly\n extcodecopy(addr, add(o_code, 0x20), 0, size)\n }\n return keccak256(o_code);\n }\n}" + }, + "./contracts/PledgeAdmins.sol": { + "keccak256": "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/PledgeAdmins.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\nimport \"./LiquidPledgingPlugins.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\ncontract PledgeAdmins is AragonApp, LiquidPledgingPlugins {\n\n // Limits inserted to prevent large loops that could prevent canceling\n uint constant MAX_SUBPROJECT_LEVEL = 20;\n uint constant MAX_INTERPROJECT_LEVEL = 20;\n\n // Events\n event GiverAdded(uint64 indexed idGiver);\n event GiverUpdated(uint64 indexed idGiver);\n event DelegateAdded(uint64 indexed idDelegate);\n event DelegateUpdated(uint64 indexed idDelegate);\n event ProjectAdded(uint64 indexed idProject);\n event ProjectUpdated(uint64 indexed idProject);\n\n////////////////////\n// Public functions\n////////////////////\n\n /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address\n /// @param name The name used to identify the Giver\n /// @param url The link to the Giver's profile often an IPFS hash\n /// @param commitTime The length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n /// @param plugin This is Giver's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idGiver The id number used to reference this Admin\n function addGiver(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idGiver)\n {\n return addGiver(\n msg.sender,\n name,\n url,\n commitTime,\n plugin\n );\n }\n\n // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy?\n function addGiver(\n address addr,\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) public returns (uint64 idGiver)\n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idGiver = uint64(admins.length);\n\n // Save the fields\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Giver,\n addr,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n GiverAdded(idGiver);\n }\n\n /// @notice Updates a Giver's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Giver\n /// @param idGiver This is the Admin id number used to specify the Giver\n /// @param newAddr The new address that represents this Giver\n /// @param newName The new name used to identify the Giver\n /// @param newUrl The new link to the Giver's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n function updateGiver(\n uint64 idGiver,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage giver = _findAdmin(idGiver);\n require(msg.sender == giver.addr);\n require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver\n giver.addr = newAddr;\n giver.name = newName;\n giver.url = newUrl;\n giver.commitTime = newCommitTime;\n\n GiverUpdated(idGiver);\n }\n\n /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Delegate\n /// @param url The link to the Delegate's profile often an IPFS hash\n /// @param commitTime Sets the length of time in seconds that this delegate\n /// can be vetoed. Whenever this delegate is in a delegate chain the time\n /// allowed to veto any event must be greater than or equal to this time.\n /// @param plugin This is Delegate's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idxDelegate The id number used to reference this Delegate within\n /// the PLEDGE_ADMIN array\n function addDelegate(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idDelegate) \n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idDelegate = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Delegate,\n msg.sender,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n DelegateAdded(idDelegate);\n }\n\n /// @notice Updates a Delegate's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Delegate\n /// @param idDelegate The Admin id number used to specify the Delegate\n /// @param newAddr The new address that represents this Delegate\n /// @param newName The new name used to identify the Delegate\n /// @param newUrl The new link to the Delegate's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds that this\n /// delegate can be vetoed. Whenever this delegate is in a delegate chain\n /// the time allowed to veto any event must be greater than or equal to\n /// this time.\n function updateDelegate(\n uint64 idDelegate,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage delegate = _findAdmin(idDelegate);\n require(msg.sender == delegate.addr);\n require(delegate.adminType == PledgeAdminType.Delegate);\n delegate.addr = newAddr;\n delegate.name = newName;\n delegate.url = newUrl;\n delegate.commitTime = newCommitTime;\n\n DelegateUpdated(idDelegate);\n }\n\n /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Project\n /// @param url The link to the Project's profile often an IPFS hash\n /// @param projectAdmin The address for the trusted project manager\n /// @param parentProject The Admin id number for the parent project or 0 if\n /// there is no parentProject\n /// @param commitTime Sets the length of time in seconds the Project has to\n /// veto when the Project delegates to another Delegate and they pledge\n /// those funds to a project\n /// @param plugin This is Project's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idProject The id number used to reference this Admin\n function addProject(\n string name,\n string url,\n address projectAdmin,\n uint64 parentProject,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idProject) \n {\n require(isValidPlugin(plugin));\n\n if (parentProject != 0) {\n PledgeAdmin storage a = _findAdmin(parentProject);\n // getProjectLevel will check that parentProject has a `Project` adminType\n require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL);\n }\n\n idProject = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Project,\n projectAdmin,\n commitTime,\n parentProject,\n false,\n plugin,\n name,\n url)\n );\n\n ProjectAdded(idProject);\n }\n\n /// @notice Updates a Project's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin or a parentProject,\n /// and it must be called by the current address of the Project\n /// @param idProject The Admin id number used to specify the Project\n /// @param newAddr The new address that represents this Project\n /// @param newName The new name used to identify the Project\n /// @param newUrl The new link to the Project's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Project has\n /// to veto when the Project delegates to a Delegate and they pledge those\n /// funds to a project\n function updateProject(\n uint64 idProject,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage project = _findAdmin(idProject);\n\n require(msg.sender == project.addr);\n require(project.adminType == PledgeAdminType.Project);\n\n project.addr = newAddr;\n project.name = newName;\n project.url = newUrl;\n project.commitTime = newCommitTime;\n\n ProjectUpdated(idProject);\n }\n\n/////////////////////////////\n// Public constant functions\n/////////////////////////////\n\n /// @notice A constant getter used to check how many total Admins exist\n /// @return The total number of admins (Givers, Delegates and Projects) .\n function numberOfPledgeAdmins() external view returns(uint) {\n return admins.length - 1;\n }\n\n /// @notice A constant getter to check the details of a specified Admin\n /// @return addr Account or contract address for admin\n /// @return name Name of the pledgeAdmin\n /// @return url The link to the Project's profile often an IPFS hash\n /// @return commitTime The length of time in seconds the Admin has to veto\n /// when the Admin delegates to a Delegate and that Delegate pledges those\n /// funds to a project\n /// @return parentProject The Admin id number for the parent project or 0\n /// if there is no parentProject\n /// @return canceled 0 for Delegates & Givers, true if a Project has been\n /// canceled\n /// @return plugin This is Project's liquidPledging plugin allowing for\n /// extended functionality\n function getPledgeAdmin(uint64 idAdmin) external view returns (\n PledgeAdminType adminType,\n address addr,\n string name,\n string url,\n uint64 commitTime,\n uint64 parentProject,\n bool canceled,\n address plugin\n ) {\n PledgeAdmin storage a = _findAdmin(idAdmin);\n adminType = a.adminType;\n addr = a.addr;\n name = a.name;\n url = a.url;\n commitTime = a.commitTime;\n parentProject = a.parentProject;\n canceled = a.canceled;\n plugin = address(a.plugin);\n }\n\n /// @notice A getter to find if a specified Project has been canceled\n /// @param projectId The Admin id number used to specify the Project\n /// @return True if the Project has been canceled\n function isProjectCanceled(uint64 projectId)\n public view returns (bool)\n {\n PledgeAdmin storage a = _findAdmin(projectId);\n\n if (a.adminType == PledgeAdminType.Giver) {\n return false;\n }\n\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.canceled) {\n return true;\n }\n if (a.parentProject == 0) {\n return false;\n }\n\n return isProjectCanceled(a.parentProject);\n }\n\n///////////////////\n// Internal methods\n///////////////////\n\n /// @notice A getter to look up a Admin's details\n /// @param idAdmin The id for the Admin to lookup\n /// @return The PledgeAdmin struct for the specified Admin\n function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) {\n require(idAdmin < admins.length);\n return admins[idAdmin];\n }\n\n /// @notice Find the level of authority a specific Project has\n /// using a recursive loop\n /// @param a The project admin being queried\n /// @return The level of authority a specific Project has\n function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) {\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.parentProject == 0) {\n return(1);\n }\n\n PledgeAdmin storage parent = _findAdmin(a.parentProject);\n return _getProjectLevel(parent) + 1;\n }\n}" + }, + "./contracts/Pledges.sol": { + "keccak256": "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/Pledges.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"./LiquidPledgingStorage.sol\";\n\ncontract Pledges is AragonApp, LiquidPledgingStorage {\n\n // Limits inserted to prevent large loops that could prevent canceling\n uint constant MAX_DELEGATES = 10;\n\n // a constant for when a delegate is requested that is not in the system\n uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF;\n\n/////////////////////////////\n// Public constant functions\n////////////////////////////\n\n /// @notice A constant getter that returns the total number of pledges\n /// @return The total number of Pledges in the system\n function numberOfPledges() external view returns (uint) {\n return pledges.length - 1;\n }\n\n /// @notice A getter that returns the details of the specified pledge\n /// @param idPledge the id number of the pledge being queried\n /// @return the amount, owner, the number of delegates (but not the actual\n /// delegates, the intendedProject (if any), the current commit time and\n /// the previous pledge this pledge was derived from\n function getPledge(uint64 idPledge) external view returns(\n uint amount,\n uint64 owner,\n uint64 nDelegates,\n uint64 intendedProject,\n uint64 commitTime,\n uint64 oldPledge,\n address token,\n PledgeState pledgeState\n ) {\n Pledge memory p = _findPledge(idPledge);\n amount = p.amount;\n owner = p.owner;\n nDelegates = uint64(p.delegationChain.length);\n intendedProject = p.intendedProject;\n commitTime = p.commitTime;\n oldPledge = p.oldPledge;\n token = p.token;\n pledgeState = p.pledgeState;\n }\n\n\n////////////////////\n// Internal methods\n////////////////////\n\n /// @notice This creates a Pledge with an initial amount of 0 if one is not\n /// created already; otherwise it finds the pledge with the specified\n /// attributes; all pledges technically exist, if the pledge hasn't been\n /// created in this system yet it simply isn't in the hash array\n /// hPledge2idx[] yet\n /// @param owner The owner of the pledge being looked up\n /// @param delegationChain The list of delegates in order of authority\n /// @param intendedProject The project this pledge will Fund after the\n /// commitTime has passed\n /// @param commitTime The length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n /// @param oldPledge This value is used to store the pledge the current\n /// pledge was came from, and in the case a Project is canceled, the Pledge\n /// will revert back to it's previous state\n /// @param state The pledge state: Pledged, Paying, or state\n /// @return The hPledge2idx index number\n function _findOrCreatePledge(\n uint64 owner,\n uint64[] delegationChain,\n uint64 intendedProject,\n uint64 commitTime,\n uint64 oldPledge,\n address token,\n PledgeState state\n ) internal returns (uint64)\n {\n bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state);\n uint64 id = hPledge2idx[hPledge];\n if (id > 0) {\n return id;\n }\n\n id = uint64(pledges.length);\n hPledge2idx[hPledge] = id;\n pledges.push(\n Pledge(\n 0,\n delegationChain,\n owner,\n intendedProject,\n commitTime,\n oldPledge,\n token,\n state\n )\n );\n return id;\n }\n\n /// @param idPledge the id of the pledge to load from storage\n /// @return The Pledge\n function _findPledge(uint64 idPledge) internal view returns(Pledge storage) {\n require(idPledge < pledges.length);\n return pledges[idPledge];\n }\n\n /// @notice A getter that searches the delegationChain for the level of\n /// authority a specific delegate has within a Pledge\n /// @param p The Pledge that will be searched\n /// @param idDelegate The specified delegate that's searched for\n /// @return If the delegate chain contains the delegate with the\n /// `admins` array index `idDelegate` this returns that delegates\n /// corresponding index in the delegationChain. Otherwise it returns\n /// the NOTFOUND constant\n function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) {\n for (uint i = 0; i < p.delegationChain.length; i++) {\n if (p.delegationChain[i] == idDelegate) {\n return uint64(i);\n }\n }\n return NOTFOUND;\n }\n\n /// @notice A getter to find how many old \"parent\" pledges a specific Pledge\n /// had using a self-referential loop\n /// @param p The Pledge being queried\n /// @return The number of old \"parent\" pledges a specific Pledge had\n function _getPledgeLevel(Pledge p) internal view returns(uint) {\n if (p.oldPledge == 0) {\n return 0;\n }\n Pledge storage oldP = _findPledge(p.oldPledge);\n return _getPledgeLevel(oldP) + 1; // a loop lookup\n }\n}\n" + }, + "./contracts/LiquidPledgingBase.sol": { + "keccak256": "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingBase.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: Adrià Massanet , RJ Ewing, Griff\n Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledgingStorage.sol\";\nimport \"./PledgeAdmins.sol\";\nimport \"./Pledges.sol\";\nimport \"./EscapableApp.sol\";\n\n/// @dev `LiquidPledgingBase` is the base level contract used to carry out\n/// liquidPledging's most basic functions, mostly handling and searching the\n/// data structures\ncontract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges {\n\n event Transfer(uint indexed from, uint indexed to, uint amount);\n event CancelProject(uint indexed idProject);\n\n/////////////\n// Modifiers\n/////////////\n\n /// @dev The `vault`is the only addresses that can call a function with this\n /// modifier\n modifier onlyVault() {\n require(msg.sender == address(vault));\n _;\n }\n\n///////////////\n// Constructor\n///////////////\n\n function initialize(address _escapeHatchDestination) onlyInit public {\n require(false); // overload the EscapableApp\n _escapeHatchDestination;\n }\n\n /// @param _vault The vault where the ETH backing the pledges is stored\n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _vault, address _escapeHatchDestination) onlyInit public {\n super.initialize(_escapeHatchDestination);\n require(_vault != 0x0);\n\n vault = ILPVault(_vault);\n\n admins.length = 1; // we reserve the 0 admin\n pledges.length = 1; // we reserve the 0 pledge\n }\n\n\n/////////////////////////////\n// Public constant functions\n/////////////////////////////\n\n /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index\n /// @param idPledge The id number representing the pledge being queried\n /// @param idxDelegate The index number for the delegate in this Pledge \n function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns(\n uint64 idDelegate,\n address addr,\n string name\n ) {\n Pledge storage p = _findPledge(idPledge);\n idDelegate = p.delegationChain[idxDelegate - 1];\n PledgeAdmin storage delegate = _findAdmin(idDelegate);\n addr = delegate.addr;\n name = delegate.name;\n }\n\n///////////////////\n// Public functions\n///////////////////\n\n /// @notice Only affects pledges with the Pledged PledgeState for 2 things:\n /// #1: Checks if the pledge should be committed. This means that\n /// if the pledge has an intendedProject and it is past the\n /// commitTime, it changes the owner to be the proposed project\n /// (The UI will have to read the commit time and manually do what\n /// this function does to the pledge for the end user\n /// at the expiration of the commitTime)\n ///\n /// #2: Checks to make sure that if there has been a cancellation in the\n /// chain of projects, the pledge's owner has been changed\n /// appropriately.\n ///\n /// This function can be called by anybody at anytime on any pledge.\n /// In general it can be called to force the calls of the affected \n /// plugins, which also need to be predicted by the UI\n /// @param idPledge This is the id of the pledge that will be normalized\n /// @return The normalized Pledge!\n function normalizePledge(uint64 idPledge) public returns(uint64) {\n Pledge storage p = _findPledge(idPledge);\n\n // Check to make sure this pledge hasn't already been used \n // or is in the process of being used\n if (p.pledgeState != PledgeState.Pledged) {\n return idPledge;\n }\n\n // First send to a project if it's proposed and committed\n if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) {\n uint64 oldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n uint64 toPledge = _findOrCreatePledge(\n p.intendedProject,\n new uint64[](0),\n 0,\n 0,\n oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, p.amount);\n idPledge = toPledge;\n p = _findPledge(idPledge);\n }\n\n toPledge = _getOldestPledgeNotCanceled(idPledge);\n if (toPledge != idPledge) {\n _doTransfer(idPledge, toPledge, p.amount);\n }\n\n return toPledge;\n }\n\n////////////////////\n// Internal methods\n////////////////////\n\n /// @notice A check to see if the msg.sender is the owner or the\n /// plugin contract for a specific Admin\n /// @param idAdmin The id of the admin being checked\n function _checkAdminOwner(uint64 idAdmin) internal view {\n PledgeAdmin storage a = _findAdmin(idAdmin);\n require(msg.sender == address(a.plugin) || msg.sender == a.addr);\n }\n\n function _transfer( \n uint64 idSender,\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal\n {\n require(idReceiver > 0); // prevent burning value\n idPledge = normalizePledge(idPledge);\n\n Pledge storage p = _findPledge(idPledge);\n PledgeAdmin storage receiver = _findAdmin(idReceiver);\n\n require(p.pledgeState == PledgeState.Pledged);\n\n // If the sender is the owner of the Pledge\n if (p.owner == idSender) {\n\n if (receiver.adminType == PledgeAdminType.Giver) {\n _transferOwnershipToGiver(idPledge, amount, idReceiver);\n return;\n } else if (receiver.adminType == PledgeAdminType.Project) {\n _transferOwnershipToProject(idPledge, amount, idReceiver);\n return;\n } else if (receiver.adminType == PledgeAdminType.Delegate) {\n\n uint recieverDIdx = _getDelegateIdx(p, idReceiver);\n if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) {\n // if there is an intendedProject and the receiver is in the delegationChain,\n // then we want to preserve the delegationChain as this is a veto of the\n // intendedProject by the owner\n\n if (recieverDIdx == p.delegationChain.length - 1) {\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged);\n _doTransfer(idPledge, toPledge, amount);\n return;\n }\n\n _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1);\n return;\n }\n // owner is not vetoing an intendedProject and is transferring the pledge to a delegate,\n // so we want to reset the delegationChain\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n }\n\n // This should never be reached as the receiver.adminType\n // should always be either a Giver, Project, or Delegate\n assert(false);\n }\n\n // If the sender is a Delegate\n uint senderDIdx = _getDelegateIdx(p, idSender);\n if (senderDIdx != NOTFOUND) {\n\n // And the receiver is another Giver\n if (receiver.adminType == PledgeAdminType.Giver) {\n // Only transfer to the Giver who owns the pledge\n assert(p.owner == idReceiver);\n _undelegate(idPledge, amount, p.delegationChain.length);\n return;\n }\n\n // And the receiver is another Delegate\n if (receiver.adminType == PledgeAdminType.Delegate) {\n uint receiverDIdx = _getDelegateIdx(p, idReceiver);\n\n // And not in the delegationChain\n if (receiverDIdx == NOTFOUND) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n\n // And part of the delegationChain and is after the sender, then\n // all of the other delegates after the sender are removed and\n // the receiver is appended at the end of the delegationChain\n } else if (receiverDIdx > senderDIdx) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n }\n\n // And is already part of the delegate chain but is before the\n // sender, then the sender and all of the other delegates after\n // the RECEIVER are removed from the delegationChain\n //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed?\n _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - receiverDIdx - 1\n );\n return;\n }\n\n // And the receiver is a Project, all the delegates after the sender\n // are removed and the amount is pre-committed to the project\n if (receiver.adminType == PledgeAdminType.Project) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _proposeAssignProject(idPledge, amount, idReceiver);\n return;\n }\n }\n assert(false); // When the sender is not an owner or a delegate\n }\n\n /// @notice `transferOwnershipToProject` allows for the transfer of\n /// ownership to the project, but it can also be called by a project\n /// to un-delegate everyone by setting one's own id for the idReceiver\n /// @param idPledge the id of the pledge to be transfered.\n /// @param amount Quantity of value that's being transfered\n /// @param idReceiver The new owner of the project (or self to un-delegate)\n function _transferOwnershipToProject(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n // Ensure that the pledge is not already at max pledge depth\n // and the project has not been canceled\n require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL);\n require(!isProjectCanceled(idReceiver));\n\n uint64 oldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n uint64 toPledge = _findOrCreatePledge(\n idReceiver, // Set the new owner\n new uint64[](0), // clear the delegation chain\n 0,\n 0,\n oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n } \n\n\n /// @notice `transferOwnershipToGiver` allows for the transfer of\n /// value back to the Giver, value is placed in a pledged state\n /// without being attached to a project, delegation chain, or time line.\n /// @param idPledge the id of the pledge to be transferred.\n /// @param amount Quantity of value that's being transferred\n /// @param idReceiver The new owner of the pledge\n function _transferOwnershipToGiver(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n uint64 toPledge = _findOrCreatePledge(\n idReceiver,\n new uint64[](0),\n 0,\n 0,\n 0,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `appendDelegate` allows for a delegate to be added onto the\n /// end of the delegate chain for a given Pledge.\n /// @param idPledge the id of the pledge thats delegate chain will be modified.\n /// @param amount Quantity of value that's being chained.\n /// @param idReceiver The delegate to be added at the end of the chain\n function _appendDelegate(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.delegationChain.length < MAX_DELEGATES);\n uint64[] memory newDelegationChain = new uint64[](\n p.delegationChain.length + 1\n );\n for (uint i = 0; i < p.delegationChain.length; i++) {\n newDelegationChain[i] = p.delegationChain[i];\n }\n\n // Make the last item in the array the idReceiver\n newDelegationChain[p.delegationChain.length] = idReceiver;\n\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n newDelegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `appendDelegate` allows for a delegate to be added onto the\n /// end of the delegate chain for a given Pledge.\n /// @param idPledge the id of the pledge thats delegate chain will be modified.\n /// @param amount Quantity of value that's shifted from delegates.\n /// @param q Number (or depth) of delegates to remove\n /// @return toPledge The id for the pledge being adjusted or created\n function _undelegate(\n uint64 idPledge,\n uint amount,\n uint q\n ) internal returns (uint64 toPledge)\n {\n Pledge storage p = _findPledge(idPledge);\n uint64[] memory newDelegationChain = new uint64[](\n p.delegationChain.length - q\n );\n\n for (uint i = 0; i < p.delegationChain.length - q; i++) {\n newDelegationChain[i] = p.delegationChain[i];\n }\n toPledge = _findOrCreatePledge(\n p.owner,\n newDelegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `proposeAssignProject` proposes the assignment of a pledge\n /// to a specific project.\n /// @dev This function should potentially be named more specifically.\n /// @param idPledge the id of the pledge that will be assigned.\n /// @param amount Quantity of value this pledge leader would be assigned.\n /// @param idReceiver The project this pledge will potentially \n /// be assigned to.\n function _proposeAssignProject(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL);\n require(!isProjectCanceled(idReceiver));\n\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n idReceiver,\n uint64(_getTime() + _maxCommitTime(p)),\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `doTransfer` is designed to allow for pledge amounts to be \n /// shifted around internally.\n /// @param from This is the id of the pledge from which value will be transferred.\n /// @param to This is the id of the pledge that value will be transferred to.\n /// @param _amount The amount of value that will be transferred.\n function _doTransfer(uint64 from, uint64 to, uint _amount) internal {\n uint amount = _callPlugins(true, from, to, _amount);\n if (from == to) {\n return;\n }\n if (amount == 0) {\n return;\n }\n\n Pledge storage pFrom = _findPledge(from);\n Pledge storage pTo = _findPledge(to);\n\n require(pFrom.amount >= amount);\n pFrom.amount -= amount;\n pTo.amount += amount;\n\n Transfer(from, to, amount);\n _callPlugins(false, from, to, amount);\n }\n\n /// @notice A getter to find the longest commitTime out of the owner and all\n /// the delegates for a specified pledge\n /// @param p The Pledge being queried\n /// @return The maximum commitTime out of the owner and all the delegates\n function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) {\n PledgeAdmin storage a = _findAdmin(p.owner);\n commitTime = a.commitTime; // start with the owner's commitTime\n\n for (uint i = 0; i < p.delegationChain.length; i++) {\n a = _findAdmin(p.delegationChain[i]);\n\n // If a delegate's commitTime is longer, make it the new commitTime\n if (a.commitTime > commitTime) {\n commitTime = a.commitTime;\n }\n }\n }\n\n /// @notice A getter to find the oldest pledge that hasn't been canceled\n /// @param idPledge The starting place to lookup the pledges\n /// @return The oldest idPledge that hasn't been canceled (DUH!)\n function _getOldestPledgeNotCanceled(\n uint64 idPledge\n ) internal view returns(uint64)\n {\n if (idPledge == 0) {\n return 0;\n }\n\n Pledge storage p = _findPledge(idPledge);\n PledgeAdmin storage admin = _findAdmin(p.owner);\n \n if (admin.adminType == PledgeAdminType.Giver) {\n return idPledge;\n }\n\n assert(admin.adminType == PledgeAdminType.Project);\n if (!isProjectCanceled(p.owner)) {\n return idPledge;\n }\n\n return _getOldestPledgeNotCanceled(p.oldPledge);\n }\n\n /// @notice `callPlugin` is used to trigger the general functions in the\n /// plugin for any actions needed before and after a transfer happens.\n /// Specifically what this does in relation to the plugin is something\n /// that largely depends on the functions of that plugin. This function\n /// is generally called in pairs, once before, and once after a transfer.\n /// @param before This toggle determines whether the plugin call is occurring\n /// before or after a transfer.\n /// @param adminId This should be the Id of the *trusted* individual\n /// who has control over this plugin.\n /// @param fromPledge This is the Id from which value is being transfered.\n /// @param toPledge This is the Id that value is being transfered to.\n /// @param context The situation that is triggering the plugin. See plugin\n /// for a full description of contexts.\n /// @param amount The amount of value that is being transfered.\n function _callPlugin(\n bool before,\n uint64 adminId,\n uint64 fromPledge,\n uint64 toPledge,\n uint64 context,\n address token,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n uint newAmount;\n allowedAmount = amount;\n PledgeAdmin storage admin = _findAdmin(adminId);\n\n // Checks admin has a plugin assigned and a non-zero amount is requested\n if (address(admin.plugin) != 0 && allowedAmount > 0) {\n // There are two separate functions called in the plugin.\n // One is called before the transfer and one after\n if (before) {\n newAmount = admin.plugin.beforeTransfer(\n adminId,\n fromPledge,\n toPledge,\n context,\n token,\n amount\n );\n require(newAmount <= allowedAmount);\n allowedAmount = newAmount;\n } else {\n admin.plugin.afterTransfer(\n adminId,\n fromPledge,\n toPledge,\n context,\n token,\n amount\n );\n }\n }\n }\n\n /// @notice `callPluginsPledge` is used to apply plugin calls to\n /// the delegate chain and the intended project if there is one.\n /// It does so in either a transferring or receiving context based\n /// on the `p` and `fromPledge` parameters.\n /// @param before This toggle determines whether the plugin call is occuring\n /// before or after a transfer.\n /// @param idPledge This is the id of the pledge on which this plugin\n /// is being called.\n /// @param fromPledge This is the Id from which value is being transfered.\n /// @param toPledge This is the Id that value is being transfered to.\n /// @param amount The amount of value that is being transfered.\n function _callPluginsPledge(\n bool before,\n uint64 idPledge,\n uint64 fromPledge,\n uint64 toPledge,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n // Determine if callPlugin is being applied in a receiving\n // or transferring context\n uint64 offset = idPledge == fromPledge ? 0 : 256;\n allowedAmount = amount;\n Pledge storage p = _findPledge(idPledge);\n\n // Always call the plugin on the owner\n allowedAmount = _callPlugin(\n before,\n p.owner,\n fromPledge,\n toPledge,\n offset,\n p.token,\n allowedAmount\n );\n\n // Apply call plugin to all delegates\n for (uint64 i = 0; i < p.delegationChain.length; i++) {\n allowedAmount = _callPlugin(\n before,\n p.delegationChain[i],\n fromPledge,\n toPledge,\n offset + i + 1,\n p.token,\n allowedAmount\n );\n }\n\n // If there is an intended project also call the plugin in\n // either a transferring or receiving context based on offset\n // on the intended project\n if (p.intendedProject > 0) {\n allowedAmount = _callPlugin(\n before,\n p.intendedProject,\n fromPledge,\n toPledge,\n offset + 255,\n p.token,\n allowedAmount\n );\n }\n }\n\n /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer\n /// context and once for the receiving context. The aggregated \n /// allowed amount is then returned.\n /// @param before This toggle determines whether the plugin call is occurring\n /// before or after a transfer.\n /// @param fromPledge This is the Id from which value is being transferred.\n /// @param toPledge This is the Id that value is being transferred to.\n /// @param amount The amount of value that is being transferred.\n function _callPlugins(\n bool before,\n uint64 fromPledge,\n uint64 toPledge,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n allowedAmount = amount;\n\n // Call the plugins in the transfer context\n allowedAmount = _callPluginsPledge(\n before,\n fromPledge,\n fromPledge,\n toPledge,\n allowedAmount\n );\n\n // Call the plugins in the receive context\n allowedAmount = _callPluginsPledge(\n before,\n toPledge,\n fromPledge,\n toPledge,\n allowedAmount\n );\n }\n\n/////////////\n// Test functions\n/////////////\n\n /// @notice Basic helper function to return the current time\n function _getTime() internal view returns (uint) {\n return now;\n }\n}\n" + }, + "./contracts/LiquidPledgingMock.sol": { + "keccak256": "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingMock.sol" + ], + "content": "pragma solidity ^0.4.11;\n/*\n Copyright 2017, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledging.sol\";\n// hack so that solcpiler will generate a contracts.Kernel object\nimport \"@aragon/os/contracts/kernel/Kernel.sol\";\n\n/// @dev `LiquidPledgingMock` allows for mocking up\n/// a `LiquidPledging` contract with the added ability\n/// to manipulate the block time for testing purposes.\ncontract LiquidPledgingMock is LiquidPledging {\n\n uint public mock_time;\n\n function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public {\n }\n\n /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging`\n /// instance and sets the mocked time to the current blocktime.\n function initialize(address _vault, address _escapeHatchDestination) onlyInit public {\n super.initialize(_vault, _escapeHatchDestination);\n mock_time = now;\n }\n\n /// @dev `getTime` is a basic getter function for\n /// the mock_time parameter\n function _getTime() internal view returns (uint) {\n return mock_time;\n }\n\n /// @dev `setMockedTime` is a basic setter function for\n /// the mock_time parameter\n /// @param _t This is the value to which the mocked time\n /// will be set.\n function setMockedTime(uint _t) public {\n mock_time = _t;\n }\n}\n" + }, + "@aragon/os/contracts/kernel/KernelStorage.sol": { + "keccak256": "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/KernelStorage.sol" + ], + "content": "pragma solidity 0.4.18;\n\n\ncontract KernelConstants {\n bytes32 constant public CORE_NAMESPACE = keccak256(\"core\");\n bytes32 constant public APP_BASES_NAMESPACE = keccak256(\"base\");\n bytes32 constant public APP_ADDR_NAMESPACE = keccak256(\"app\");\n\n bytes32 constant public KERNEL_APP_ID = keccak256(\"kernel.aragonpm.eth\");\n bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID);\n\n bytes32 constant public ACL_APP_ID = keccak256(\"acl.aragonpm.eth\");\n bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID);\n}\n\n\ncontract KernelStorage is KernelConstants {\n mapping (bytes32 => address) public apps;\n}\n" + }, + "@aragon/os/contracts/apps/IAppProxy.sol": { + "keccak256": "0x4d5f398f887030d6d0b5045e0424b59d58abd718143289afcaf3e160d6c91736", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/IAppProxy.sol" + ], + "content": "pragma solidity 0.4.18;\n\ninterface IAppProxy {\n function isUpgradeable() public pure returns (bool);\n function getCode() public view returns (address);\n}\n" + }, + "@aragon/os/contracts/common/DelegateProxy.sol": { + "keccak256": "0x81bab220700a9a5def3ac54278ccec046be0b1c333dba9567f7175e358414d87", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/common/DelegateProxy.sol" + ], + "content": "pragma solidity 0.4.18;\n\n\ncontract DelegateProxy {\n /**\n * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!)\n * @param _dst Destination address to perform the delegatecall\n * @param _calldata Calldata for the delegatecall\n */\n function delegatedFwd(address _dst, bytes _calldata) internal {\n require(isContract(_dst));\n assembly {\n let result := delegatecall(sub(gas, 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0)\n let size := returndatasize\n\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, size)\n\n // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas.\n // if the call returned error data, forward it\n switch result case 0 { revert(ptr, size) }\n default { return(ptr, size) }\n }\n }\n\n function isContract(address _target) internal view returns (bool) {\n uint256 size;\n assembly { size := extcodesize(_target) }\n return size > 0;\n }\n}\n" + }, + "@aragon/os/contracts/apps/AppProxyBase.sol": { + "keccak256": "0x907218cac02c5f7a10873eb30fb1ffaecdd93527a0ff7e2f0305590bf585d06b", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppProxyBase.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"./IAppProxy.sol\";\nimport \"./AppStorage.sol\";\nimport \"../common/DelegateProxy.sol\";\nimport \"../kernel/KernelStorage.sol\";\n\n\ncontract AppProxyBase is IAppProxy, AppStorage, DelegateProxy, KernelConstants {\n /**\n * @dev Initialize AppProxy\n * @param _kernel Reference to organization kernel for the app\n * @param _appId Identifier for app\n * @param _initializePayload Payload for call to be made after setup to initialize\n */\n function AppProxyBase(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public {\n kernel = _kernel;\n appId = _appId;\n\n // Implicit check that kernel is actually a Kernel\n // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to\n // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on\n // it.\n address appCode = getAppBase(appId);\n\n // If initialize payload is provided, it will be executed\n if (_initializePayload.length > 0) {\n require(isContract(appCode));\n // Cannot make delegatecall as a delegateproxy.delegatedFwd as it\n // returns ending execution context and halts contract deployment\n require(appCode.delegatecall(_initializePayload));\n }\n }\n\n function getAppBase(bytes32 _appId) internal view returns (address) {\n return kernel.getApp(keccak256(APP_BASES_NAMESPACE, _appId));\n }\n\n function () payable public {\n address target = getCode();\n require(target != 0); // if app code hasn't been set yet, don't call\n delegatedFwd(target, msg.data);\n }\n}" + }, + "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { + "keccak256": "0x4613af6e313048b7de649d54630276fb18154dac5674f057109f0e0591f11cb2", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"./AppProxyBase.sol\";\n\n\ncontract AppProxyUpgradeable is AppProxyBase {\n address public pinnedCode;\n\n /**\n * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app)\n * @param _kernel Reference to organization kernel for the app\n * @param _appId Identifier for app\n * @param _initializePayload Payload for call to be made after setup to initialize\n */\n function AppProxyUpgradeable(IKernel _kernel, bytes32 _appId, bytes _initializePayload)\n AppProxyBase(_kernel, _appId, _initializePayload) public\n {\n\n }\n\n function getCode() public view returns (address) {\n return getAppBase(appId);\n }\n\n function isUpgradeable() public pure returns (bool) {\n return true;\n }\n}\n" + }, + "@aragon/os/contracts/apps/AppProxyPinned.sol": { + "keccak256": "0xfe66e88413adc4d60ae53352046bd23ebd0aeb3120599d445df19caa8b095c26", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppProxyPinned.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"./AppProxyBase.sol\";\n\n\ncontract AppProxyPinned is AppProxyBase {\n /**\n * @dev Initialize AppProxyPinned (makes it an un-upgradeable Aragon app)\n * @param _kernel Reference to organization kernel for the app\n * @param _appId Identifier for app\n * @param _initializePayload Payload for call to be made after setup to initialize\n */\n function AppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload)\n AppProxyBase(_kernel, _appId, _initializePayload) public\n {\n pinnedCode = getAppBase(appId);\n require(pinnedCode != address(0));\n }\n\n function getCode() public view returns (address) {\n return pinnedCode;\n }\n\n function isUpgradeable() public pure returns (bool) {\n return false;\n }\n\n function () payable public {\n delegatedFwd(getCode(), msg.data);\n }\n}" + }, + "@aragon/os/contracts/factory/AppProxyFactory.sol": { + "keccak256": "0xa5314f57f93d8e633724bd9f94ad43f127c5b5466dcd0ef32fe0f78d5d431592", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/factory/AppProxyFactory.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"../apps/AppProxyUpgradeable.sol\";\nimport \"../apps/AppProxyPinned.sol\";\n\n\ncontract AppProxyFactory {\n event NewAppProxy(address proxy);\n\n function newAppProxy(IKernel _kernel, bytes32 _appId) public returns (AppProxyUpgradeable) {\n return newAppProxy(_kernel, _appId, new bytes(0));\n }\n\n function newAppProxy(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyUpgradeable) {\n AppProxyUpgradeable proxy = new AppProxyUpgradeable(_kernel, _appId, _initializePayload);\n NewAppProxy(address(proxy));\n return proxy;\n }\n\n function newAppProxyPinned(IKernel _kernel, bytes32 _appId) public returns (AppProxyPinned) {\n return newAppProxyPinned(_kernel, _appId, new bytes(0));\n }\n\n function newAppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyPinned) {\n AppProxyPinned proxy = new AppProxyPinned(_kernel, _appId, _initializePayload);\n NewAppProxy(address(proxy));\n return proxy;\n }\n}\n" + }, + "@aragon/os/contracts/kernel/Kernel.sol": { + "keccak256": "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/Kernel.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"./IKernel.sol\";\nimport \"./KernelStorage.sol\";\nimport \"../acl/ACLSyntaxSugar.sol\";\nimport \"../apps/IAppProxy.sol\";\nimport \"../common/Initializable.sol\";\nimport \"../factory/AppProxyFactory.sol\";\n\n\ncontract Kernel is IKernel, KernelStorage, Initializable, AppProxyFactory, ACLSyntaxSugar {\n bytes32 constant public APP_MANAGER_ROLE = bytes32(1);\n\n /**\n * @dev Initialize can only be called once. It saves the block number in which it was initialized.\n * @notice Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions\n * @param _baseAcl Address of base ACL app\n * @param _permissionsCreator Entity that will be given permission over createPermission\n */\n function initialize(address _baseAcl, address _permissionsCreator) onlyInit public {\n initialized();\n\n IACL acl = IACL(newAppProxy(this, ACL_APP_ID));\n\n _setApp(APP_BASES_NAMESPACE, ACL_APP_ID, _baseAcl);\n _setApp(APP_ADDR_NAMESPACE, ACL_APP_ID, acl);\n\n acl.initialize(_permissionsCreator);\n }\n\n /**\n * @dev Create a new instance of an app linked to this kernel and set its base\n * implementation if it was not already set\n * @param _name Name of the app\n * @param _appBase Address of the app's base implementation\n * @return AppProxy instance\n */\n function newAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) {\n _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase);\n appProxy = newAppProxy(this, _name);\n }\n\n /**\n * @dev Create a new pinned instance of an app linked to this kernel and set\n * its base implementation if it was not already set\n * @param _name Name of the app\n * @param _appBase Address of the app's base implementation\n * @return AppProxy instance\n */\n function newPinnedAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) {\n _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase);\n appProxy = newAppProxyPinned(this, _name);\n }\n\n /**\n * @dev Set the resolving address of an app instance or base implementation\n * @param _namespace App namespace to use\n * @param _name Name of the app\n * @param _app Address of the app\n * @return ID of app\n */\n function setApp(bytes32 _namespace, bytes32 _name, address _app) auth(APP_MANAGER_ROLE, arr(_namespace, _name)) kernelIntegrity public returns (bytes32 id) {\n return _setApp(_namespace, _name, _app);\n }\n\n /**\n * @dev Get the address of an app instance or base implementation\n * @param _id App identifier\n * @return Address of the app\n */\n function getApp(bytes32 _id) public view returns (address) {\n return apps[_id];\n }\n\n /**\n * @dev Get the installed ACL app\n * @return ACL app\n */\n function acl() public view returns (IACL) {\n return IACL(getApp(ACL_APP));\n }\n\n /**\n * @dev Function called by apps to check ACL on kernel or to check permission status\n * @param _who Sender of the original call\n * @param _where Address of the app\n * @param _what Identifier for a group of actions in app\n * @param _how Extra data for ACL auth\n * @return boolean indicating whether the ACL allows the role or not\n */\n function hasPermission(address _who, address _where, bytes32 _what, bytes _how) public view returns (bool) {\n return acl().hasPermission(_who, _where, _what, _how);\n }\n\n function _setApp(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) {\n id = keccak256(_namespace, _name);\n apps[id] = _app;\n SetApp(_namespace, _name, id, _app);\n }\n\n function _setAppIfNew(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) {\n id = keccak256(_namespace, _name);\n\n if (_app != address(0)) {\n address app = getApp(id);\n if (app != address(0)) {\n require(app == _app);\n } else {\n apps[id] = _app;\n SetApp(_namespace, _name, id, _app);\n }\n }\n }\n\n modifier auth(bytes32 _role, uint256[] memory params) {\n bytes memory how;\n uint256 byteLength = params.length * 32;\n assembly {\n how := params // forced casting\n mstore(how, byteLength)\n }\n // Params is invalid from this point fwd\n require(hasPermission(msg.sender, address(this), _role, how));\n _;\n }\n\n modifier kernelIntegrity {\n _; // After execution check integrity\n address kernel = getApp(KERNEL_APP);\n uint256 size;\n assembly { size := extcodesize(kernel) }\n require(size > 0);\n }\n}\n" + }, + "./contracts/LPConstants.sol": { + "keccak256": "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LPConstants.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"@aragon/os/contracts/kernel/KernelStorage.sol\";\n\ncontract LPConstants is KernelConstants {\n bytes32 constant public VAULT_APP_ID = keccak256(\"vault\");\n bytes32 constant public LP_APP_ID = keccak256(\"liquidPledging\");\n}" + }, + "./contracts/LPFactory.sol": { + "keccak256": "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LPFactory.sol" + ], + "content": "pragma solidity ^0.4.18;\n\nimport \"@aragon/os/contracts/factory/DAOFactory.sol\";\nimport \"./LPVault.sol\";\nimport \"./LiquidPledging.sol\";\nimport \"./LPConstants.sol\";\n\ncontract LPFactory is LPConstants, DAOFactory {\n address public vaultBase;\n address public lpBase;\n\n event DeployVault(address vault);\n event DeployLiquidPledging(address liquidPledging);\n\n function LPFactory(address _vaultBase, address _lpBase) public DAOFactory(0) {\n require(_vaultBase != 0);\n require(_lpBase != 0);\n vaultBase = _vaultBase;\n lpBase = _lpBase;\n }\n\n function newLP(address _root, address _escapeHatchDestination) external {\n Kernel kernel = newDAO(this);\n ACL acl = ACL(kernel.acl());\n\n bytes32 appManagerRole = kernel.APP_MANAGER_ROLE();\n\n acl.createPermission(this, address(kernel), appManagerRole, this);\n\n LPVault v = LPVault(kernel.newAppInstance(VAULT_APP_ID, vaultBase));\n LiquidPledging lp = LiquidPledging(kernel.newAppInstance(LP_APP_ID, lpBase));\n v.initialize(address(lp), _escapeHatchDestination);\n lp.initialize(address(v), _escapeHatchDestination);\n\n // register the lp instance w/ the kernel\n kernel.setApp(kernel.APP_ADDR_NAMESPACE(), LP_APP_ID, address(lp));\n\n _setPermissions(_root, acl, kernel, v, lp);\n }\n\n function _setPermissions(address _root, ACL acl, Kernel kernel, LPVault v, LiquidPledging lp) internal {\n bytes32 appManagerRole = kernel.APP_MANAGER_ROLE();\n bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE();\n bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE();\n bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE();\n\n acl.createPermission(_root, address(v), hatchCallerRole, _root);\n acl.createPermission(_root, address(lp), hatchCallerRole, _root);\n acl.createPermission(_root, address(lp), pluginManagerRole, _root);\n // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways\n\n acl.grantPermission(_root, address(kernel), appManagerRole);\n acl.grantPermission(_root, address(acl), permRole);\n acl.revokePermission(this, address(kernel), appManagerRole);\n acl.revokePermission(this, address(acl), permRole);\n\n acl.setPermissionManager(_root, address(kernel), appManagerRole);\n acl.setPermissionManager(_root, address(acl), permRole);\n\n DeployVault(address(v));\n DeployLiquidPledging(address(lp));\n }\n}" + }, + "@aragon/os/contracts/kernel/KernelProxy.sol": { + "keccak256": "0xe9baab334f8e30a2d9a4fb21a54b46a6603597f812deef2ec36215491e6dcf11", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/KernelProxy.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"./KernelStorage.sol\";\nimport \"../common/DelegateProxy.sol\";\n\n\ncontract KernelProxy is KernelStorage, DelegateProxy {\n /**\n * @dev KernelProxy is a proxy contract to a kernel implementation. The implementation\n * can update the reference, which effectively upgrades the contract\n * @param _kernelImpl Address of the contract used as implementation for kernel\n */\n function KernelProxy(address _kernelImpl) public {\n apps[keccak256(CORE_NAMESPACE, KERNEL_APP_ID)] = _kernelImpl;\n }\n\n /**\n * @dev All calls made to the proxy are forwarded to the kernel implementation via a delegatecall\n * @return Any bytes32 value the implementation returns\n */\n function () payable public {\n delegatedFwd(apps[KERNEL_APP], msg.data);\n }\n}" + }, + "@aragon/os/contracts/acl/ACL.sol": { + "keccak256": "0x7e636d70192cc2b18d00df37ff91e1f3b4e5a6dfb0c92f9d90441dceac1f2a25", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/acl/ACL.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"../apps/AragonApp.sol\";\nimport \"./ACLSyntaxSugar.sol\";\nimport \"./IACL.sol\";\n\n\ninterface ACLOracle {\n function canPerform(address who, address where, bytes32 what) public view returns (bool);\n}\n\n\ncontract ACL is IACL, AragonApp, ACLHelpers {\n bytes32 constant public CREATE_PERMISSIONS_ROLE = bytes32(1);\n\n // whether a certain entity has a permission\n mapping (bytes32 => bytes32) permissions; // 0 for no permission, or parameters id\n mapping (bytes32 => Param[]) public permissionParams;\n\n // who is the manager of a permission\n mapping (bytes32 => address) permissionManager;\n\n enum Op { NONE, EQ, NEQ, GT, LT, GTE, LTE, NOT, AND, OR, XOR, IF_ELSE, RET } // op types\n\n struct Param {\n uint8 id;\n uint8 op;\n uint240 value; // even though value is an uint240 it can store addresses\n // in the case of 32 byte hashes losing 2 bytes precision isn't a huge deal\n // op and id take less than 1 byte each so it can be kept in 1 sstore\n }\n\n uint8 constant BLOCK_NUMBER_PARAM_ID = 200;\n uint8 constant TIMESTAMP_PARAM_ID = 201;\n uint8 constant SENDER_PARAM_ID = 202;\n uint8 constant ORACLE_PARAM_ID = 203;\n uint8 constant LOGIC_OP_PARAM_ID = 204;\n uint8 constant PARAM_VALUE_PARAM_ID = 205;\n // TODO: Add execution times param type?\n\n bytes32 constant public EMPTY_PARAM_HASH = keccak256(uint256(0));\n address constant ANY_ENTITY = address(-1);\n\n modifier onlyPermissionManager(address _app, bytes32 _role) {\n require(msg.sender == getPermissionManager(_app, _role));\n _;\n }\n\n event SetPermission(address indexed entity, address indexed app, bytes32 indexed role, bool allowed);\n event ChangePermissionManager(address indexed app, bytes32 indexed role, address indexed manager);\n\n /**\n * @dev Initialize can only be called once. It saves the block number in which it was initialized.\n * @notice Initializes an ACL instance and sets `_permissionsCreator` as the entity that can create other permissions\n * @param _permissionsCreator Entity that will be given permission over createPermission\n */\n function initialize(address _permissionsCreator) onlyInit public {\n initialized();\n require(msg.sender == address(kernel));\n\n _createPermission(_permissionsCreator, this, CREATE_PERMISSIONS_ROLE, _permissionsCreator);\n }\n\n /**\n * @dev Creates a permission that wasn't previously set. Access is limited by the ACL.\n * If a created permission is removed it is possible to reset it with createPermission.\n * @notice Create a new permission granting `_entity` the ability to perform actions of role `_role` on `_app` (setting `_manager` as the permission manager)\n * @param _entity Address of the whitelisted entity that will be able to perform the role\n * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)\n * @param _role Identifier for the group of actions in app given access to perform\n * @param _manager Address of the entity that will be able to grant and revoke the permission further.\n */\n function createPermission(address _entity, address _app, bytes32 _role, address _manager) external {\n require(hasPermission(msg.sender, address(this), CREATE_PERMISSIONS_ROLE));\n\n _createPermission(_entity, _app, _role, _manager);\n }\n\n /**\n * @dev Grants permission if allowed. This requires `msg.sender` to be the permission manager\n * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app`\n * @param _entity Address of the whitelisted entity that will be able to perform the role\n * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)\n * @param _role Identifier for the group of actions in app given access to perform\n */\n function grantPermission(address _entity, address _app, bytes32 _role)\n external\n {\n grantPermissionP(_entity, _app, _role, new uint256[](0));\n }\n\n /**\n * @dev Grants a permission with parameters if allowed. This requires `msg.sender` to be the permission manager\n * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app`\n * @param _entity Address of the whitelisted entity that will be able to perform the role\n * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)\n * @param _role Identifier for the group of actions in app given access to perform\n * @param _params Permission parameters\n */\n function grantPermissionP(address _entity, address _app, bytes32 _role, uint256[] _params)\n onlyPermissionManager(_app, _role)\n public\n {\n require(!hasPermission(_entity, _app, _role));\n\n bytes32 paramsHash = _params.length > 0 ? _saveParams(_params) : EMPTY_PARAM_HASH;\n _setPermission(_entity, _app, _role, paramsHash);\n }\n\n /**\n * @dev Revokes permission if allowed. This requires `msg.sender` to be the the permission manager\n * @notice Revokes `_entity` the ability to perform actions of role `_role` on `_app`\n * @param _entity Address of the whitelisted entity to revoke access from\n * @param _app Address of the app in which the role will be revoked\n * @param _role Identifier for the group of actions in app being revoked\n */\n function revokePermission(address _entity, address _app, bytes32 _role)\n onlyPermissionManager(_app, _role)\n external\n {\n require(hasPermission(_entity, _app, _role));\n\n _setPermission(_entity, _app, _role, bytes32(0));\n }\n\n /**\n * @notice Sets `_newManager` as the manager of the permission `_role` in `_app`\n * @param _newManager Address for the new manager\n * @param _app Address of the app in which the permission management is being transferred\n * @param _role Identifier for the group of actions being transferred\n */\n function setPermissionManager(address _newManager, address _app, bytes32 _role)\n onlyPermissionManager(_app, _role)\n external\n {\n _setPermissionManager(_newManager, _app, _role);\n }\n\n /**\n * @dev Get manager for permission\n * @param _app Address of the app\n * @param _role Identifier for a group of actions in app\n * @return address of the manager for the permission\n */\n function getPermissionManager(address _app, bytes32 _role) public view returns (address) {\n return permissionManager[roleHash(_app, _role)];\n }\n\n /**\n * @dev Function called by apps to check ACL on kernel or to check permission statu\n * @param _who Sender of the original call\n * @param _where Address of the app\n * @param _where Identifier for a group of actions in app\n * @param _how Permission parameters\n * @return boolean indicating whether the ACL allows the role or not\n */\n function hasPermission(address _who, address _where, bytes32 _what, bytes memory _how) public view returns (bool) {\n uint256[] memory how;\n uint256 intsLength = _how.length / 32;\n assembly {\n how := _how // forced casting\n mstore(how, intsLength)\n }\n // _how is invalid from this point fwd\n return hasPermission(_who, _where, _what, how);\n }\n\n function hasPermission(address _who, address _where, bytes32 _what, uint256[] memory _how) public view returns (bool) {\n bytes32 whoParams = permissions[permissionHash(_who, _where, _what)];\n if (whoParams != bytes32(0) && evalParams(whoParams, _who, _where, _what, _how)) {\n return true;\n }\n\n bytes32 anyParams = permissions[permissionHash(ANY_ENTITY, _where, _what)];\n if (anyParams != bytes32(0) && evalParams(anyParams, ANY_ENTITY, _where, _what, _how)) {\n return true;\n }\n\n return false;\n }\n\n function hasPermission(address _who, address _where, bytes32 _what) public view returns (bool) {\n uint256[] memory empty = new uint256[](0);\n return hasPermission(_who, _where, _what, empty);\n }\n\n /**\n * @dev Internal createPermission for access inside the kernel (on instantiation)\n */\n function _createPermission(address _entity, address _app, bytes32 _role, address _manager) internal {\n // only allow permission creation (or re-creation) when there is no manager\n require(getPermissionManager(_app, _role) == address(0));\n\n _setPermission(_entity, _app, _role, EMPTY_PARAM_HASH);\n _setPermissionManager(_manager, _app, _role);\n }\n\n /**\n * @dev Internal function called to actually save the permission\n */\n function _setPermission(address _entity, address _app, bytes32 _role, bytes32 _paramsHash) internal {\n permissions[permissionHash(_entity, _app, _role)] = _paramsHash;\n\n SetPermission(_entity, _app, _role, _paramsHash != bytes32(0));\n }\n\n function _saveParams(uint256[] _encodedParams) internal returns (bytes32) {\n bytes32 paramHash = keccak256(_encodedParams);\n Param[] storage params = permissionParams[paramHash];\n\n if (params.length == 0) { // params not saved before\n for (uint256 i = 0; i < _encodedParams.length; i++) {\n uint256 encodedParam = _encodedParams[i];\n Param memory param = Param(decodeParamId(encodedParam), decodeParamOp(encodedParam), uint240(encodedParam));\n params.push(param);\n }\n }\n\n return paramHash;\n }\n\n function evalParams(\n bytes32 _paramsHash,\n address _who,\n address _where,\n bytes32 _what,\n uint256[] _how\n ) internal view returns (bool)\n {\n if (_paramsHash == EMPTY_PARAM_HASH) {\n return true;\n }\n\n return evalParam(_paramsHash, 0, _who, _where, _what, _how);\n }\n\n function evalParam(\n bytes32 _paramsHash,\n uint32 _paramId,\n address _who,\n address _where,\n bytes32 _what,\n uint256[] _how\n ) internal view returns (bool)\n {\n if (_paramId >= permissionParams[_paramsHash].length) {\n return false; // out of bounds\n }\n\n Param memory param = permissionParams[_paramsHash][_paramId];\n\n if (param.id == LOGIC_OP_PARAM_ID) {\n return evalLogic(param, _paramsHash, _who, _where, _what, _how);\n }\n\n uint256 value;\n uint256 comparedTo = uint256(param.value);\n\n // get value\n if (param.id == ORACLE_PARAM_ID) {\n value = ACLOracle(param.value).canPerform(_who, _where, _what) ? 1 : 0;\n comparedTo = 1;\n } else if (param.id == BLOCK_NUMBER_PARAM_ID) {\n value = blockN();\n } else if (param.id == TIMESTAMP_PARAM_ID) {\n value = time();\n } else if (param.id == SENDER_PARAM_ID) {\n value = uint256(msg.sender);\n } else if (param.id == PARAM_VALUE_PARAM_ID) {\n value = uint256(param.value);\n } else {\n if (param.id >= _how.length) {\n return false;\n }\n value = uint256(uint240(_how[param.id])); // force lost precision\n }\n\n if (Op(param.op) == Op.RET) {\n return uint256(value) > 0;\n }\n\n return compare(value, Op(param.op), comparedTo);\n }\n\n function evalLogic(Param _param, bytes32 _paramsHash, address _who, address _where, bytes32 _what, uint256[] _how) internal view returns (bool) {\n if (Op(_param.op) == Op.IF_ELSE) {\n var (condition, success, failure) = decodeParamsList(uint256(_param.value));\n bool result = evalParam(_paramsHash, condition, _who, _where, _what, _how);\n\n return evalParam(_paramsHash, result ? success : failure, _who, _where, _what, _how);\n }\n\n var (v1, v2,) = decodeParamsList(uint256(_param.value));\n bool r1 = evalParam(_paramsHash, v1, _who, _where, _what, _how);\n\n if (Op(_param.op) == Op.NOT) {\n return !r1;\n }\n\n if (r1 && Op(_param.op) == Op.OR) {\n return true;\n }\n\n if (!r1 && Op(_param.op) == Op.AND) {\n return false;\n }\n\n bool r2 = evalParam(_paramsHash, v2, _who, _where, _what, _how);\n\n if (Op(_param.op) == Op.XOR) {\n return (r1 && !r2) || (!r1 && r2);\n }\n\n return r2; // both or and and depend on result of r2 after checks\n }\n\n function compare(uint256 _a, Op _op, uint256 _b) internal pure returns (bool) {\n if (_op == Op.EQ) return _a == _b; // solium-disable-line lbrace\n if (_op == Op.NEQ) return _a != _b; // solium-disable-line lbrace\n if (_op == Op.GT) return _a > _b; // solium-disable-line lbrace\n if (_op == Op.LT) return _a < _b; // solium-disable-line lbrace\n if (_op == Op.GTE) return _a >= _b; // solium-disable-line lbrace\n if (_op == Op.LTE) return _a <= _b; // solium-disable-line lbrace\n return false;\n }\n\n /**\n * @dev Internal function that sets management\n */\n function _setPermissionManager(address _newManager, address _app, bytes32 _role) internal {\n permissionManager[roleHash(_app, _role)] = _newManager;\n ChangePermissionManager(_app, _role, _newManager);\n }\n\n function roleHash(address _where, bytes32 _what) pure internal returns (bytes32) {\n return keccak256(uint256(1), _where, _what);\n }\n\n function permissionHash(address _who, address _where, bytes32 _what) pure internal returns (bytes32) {\n return keccak256(uint256(2), _who, _where, _what);\n }\n\n function time() internal view returns (uint64) { return uint64(block.timestamp); } // solium-disable-line security/no-block-members\n\n function blockN() internal view returns (uint256) { return block.number; }\n}\n" + }, + "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { + "keccak256": "0xd2b72c173913aa2b869e6185843e3796e0532b9744a10fdf0ac7ec532e5b0fff", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/EVMScriptRegistry.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"./ScriptHelpers.sol\";\nimport \"./IEVMScriptExecutor.sol\";\nimport \"./IEVMScriptRegistry.sol\";\n\nimport \"../apps/AragonApp.sol\";\n\n\ncontract EVMScriptRegistry is IEVMScriptRegistry, EVMScriptRegistryConstants, AragonApp {\n using ScriptHelpers for bytes;\n\n // WARN: Manager can censor all votes and the like happening in an org\n bytes32 constant public REGISTRY_MANAGER_ROLE = bytes32(1);\n\n struct ExecutorEntry {\n address executor;\n bool enabled;\n }\n\n ExecutorEntry[] public executors;\n\n function initialize() onlyInit public {\n initialized();\n // Create empty record to begin executor IDs at 1\n executors.push(ExecutorEntry(address(0), false));\n }\n\n function addScriptExecutor(address _executor) external auth(REGISTRY_MANAGER_ROLE) returns (uint id) {\n return executors.push(ExecutorEntry(_executor, true));\n }\n\n function disableScriptExecutor(uint256 _executorId) external auth(REGISTRY_MANAGER_ROLE) {\n executors[_executorId].enabled = false;\n }\n\n function getScriptExecutor(bytes _script) public view returns (address) {\n uint256 id = _script.getSpecId();\n\n if (id == 0 || id >= executors.length) {\n return address(0);\n }\n\n ExecutorEntry storage entry = executors[id];\n return entry.enabled ? entry.executor : address(0);\n }\n}\n" + }, + "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { + "keccak256": "0x72ff2681f5dfec19b05d235d841042a78a4682a8368e6bb16516447495161014", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/executors/CallsScript.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n// Inspired by https://github.com/reverendus/tx-manager\n\nimport \"../ScriptHelpers.sol\";\nimport \"../IEVMScriptExecutor.sol\";\n\n\ncontract CallsScript is IEVMScriptExecutor {\n using ScriptHelpers for bytes;\n\n uint256 constant internal SCRIPT_START_LOCATION = 4;\n\n event LogScriptCall(address indexed sender, address indexed src, address indexed dst);\n\n /**\n * @notice Executes a number of call scripts\n * @param _script [ specId (uint32) ] many calls with this structure ->\n * [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]\n * @param _input Input is ignored in callscript\n * @param _blacklist Addresses the script cannot call to, or will revert.\n * @return always returns empty byte array\n */\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n uint256 location = SCRIPT_START_LOCATION; // first 32 bits are spec id\n while (location < _script.length) {\n address contractAddress = _script.addressAt(location);\n // Check address being called is not blacklist\n for (uint i = 0; i < _blacklist.length; i++) {\n require(contractAddress != _blacklist[i]);\n }\n\n // logged before execution to ensure event ordering in receipt\n // if failed entire execution is reverted regardless\n LogScriptCall(msg.sender, address(this), contractAddress);\n\n uint256 calldataLength = uint256(_script.uint32At(location + 0x14));\n uint256 calldataStart = _script.locationOf(location + 0x14 + 0x04);\n\n assembly {\n let success := call(sub(gas, 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0)\n switch success case 0 { revert(0, 0) }\n }\n\n location += (0x14 + 0x04 + calldataLength);\n }\n }\n}" + }, + "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { + "keccak256": "0x1f29ea7d6d6f912b392f3fc4b9dad4cfbe5f2133fbdf21e8233a999a6726858a", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/executors/DelegateScript.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"../ScriptHelpers.sol\";\nimport \"../IEVMScriptExecutor.sol\";\n\n\ninterface DelegateScriptTarget {\n function exec() public;\n}\n\n\ncontract DelegateScript is IEVMScriptExecutor {\n using ScriptHelpers for *;\n\n uint256 constant internal SCRIPT_START_LOCATION = 4;\n\n /**\n * @notice Executes script by delegatecall into a contract\n * @param _script [ specId (uint32) ][ contract address (20 bytes) ]\n * @param _input ABI encoded call to be made to contract (if empty executes default exec() function)\n * @param _blacklist If any address is passed, will revert.\n * @return Call return data\n */\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n require(_blacklist.length == 0); // dont have ability to control bans, so fail.\n\n // Script should be spec id + address (20 bytes)\n require(_script.length == SCRIPT_START_LOCATION + 20);\n return delegate(_script.addressAt(SCRIPT_START_LOCATION), _input);\n }\n\n /**\n * @dev Delegatecall to contract with input data\n */\n function delegate(address _addr, bytes memory _input) internal returns (bytes memory output) {\n require(isContract(_addr));\n require(_addr.delegatecall(_input.length > 0 ? _input : defaultInput()));\n return returnedData();\n }\n\n function isContract(address _target) internal view returns (bool) {\n uint256 size;\n assembly { size := extcodesize(_target) }\n return size > 0;\n }\n\n function defaultInput() internal pure returns (bytes) {\n return DelegateScriptTarget(0).exec.selector.toBytes();\n }\n\n /**\n * @dev copies and returns last's call data\n */\n function returnedData() internal view returns (bytes ret) {\n assembly {\n let size := returndatasize\n ret := mload(0x40) // free mem ptr get\n mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set\n mstore(ret, size) // set array length\n returndatacopy(add(ret, 0x20), 0, size) // copy return data\n }\n return ret;\n }\n}" + }, + "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { + "keccak256": "0x664ae058059e6b64e38a2f0c56c4c1603de64de56270fab1992cf64d721f1233", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"./DelegateScript.sol\";\n\n// Inspired by: https://github.com/dapphub/ds-proxy/blob/master/src/proxy.sol\n\n\ncontract DeployDelegateScript is DelegateScript {\n uint256 constant internal SCRIPT_START_LOCATION = 4;\n\n mapping (bytes32 => address) cache;\n\n /**\n * @notice Executes script by delegatecall into a deployed contract (exec() function)\n * @param _script [ specId (uint32) ][ contractInitcode (bytecode) ]\n * @param _input ABI encoded call to be made to contract (if empty executes default exec() function)\n * @param _blacklist If any address is passed, will revert.\n * @return Call return data\n */\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n require(_blacklist.length == 0); // dont have ability to control bans, so fail.\n\n bytes32 id = keccak256(_script);\n address deployed = cache[id];\n if (deployed == address(0)) {\n deployed = deploy(_script);\n cache[id] = deployed;\n }\n\n return DelegateScript.delegate(deployed, _input);\n }\n\n /**\n * @dev Deploys contract byte code to network\n */\n function deploy(bytes _script) internal returns (address addr) {\n assembly {\n // 0x24 = 0x20 (length) + 0x04 (spec id uint32)\n // Length of code is 4 bytes less than total script size\n addr := create(0, add(_script, 0x24), sub(mload(_script), 0x04))\n switch iszero(extcodesize(addr))\n case 1 { revert(0, 0) } // throw if contract failed to deploy\n }\n }\n}" + }, + "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { + "keccak256": "0x591ccf2f0ddfc70935e736bd0072b7319d07f29fa1d46a4f18231d6aa40781fa", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"../evmscript/EVMScriptRegistry.sol\";\n\nimport \"../evmscript/executors/CallsScript.sol\";\nimport \"../evmscript/executors/DelegateScript.sol\";\nimport \"../evmscript/executors/DeployDelegateScript.sol\";\n\nimport \"./AppProxyFactory.sol\";\nimport \"../kernel/Kernel.sol\";\nimport \"../acl/ACL.sol\";\n\n\ncontract EVMScriptRegistryFactory is AppProxyFactory, EVMScriptRegistryConstants {\n address public baseReg;\n address public baseCalls;\n address public baseDel;\n address public baseDeployDel;\n\n function EVMScriptRegistryFactory() public {\n baseReg = address(new EVMScriptRegistry());\n baseCalls = address(new CallsScript());\n baseDel = address(new DelegateScript());\n baseDeployDel = address(new DeployDelegateScript());\n }\n\n function newEVMScriptRegistry(Kernel _dao, address _root) public returns (EVMScriptRegistry reg) {\n reg = EVMScriptRegistry(_dao.newPinnedAppInstance(EVMSCRIPT_REGISTRY_APP_ID, baseReg));\n reg.initialize();\n\n ACL acl = ACL(_dao.acl());\n\n _dao.setApp(_dao.APP_ADDR_NAMESPACE(), EVMSCRIPT_REGISTRY_APP_ID, reg);\n acl.createPermission(this, reg, reg.REGISTRY_MANAGER_ROLE(), this);\n\n reg.addScriptExecutor(baseCalls); // spec 1 = CallsScript\n reg.addScriptExecutor(baseDel); // spec 2 = DelegateScript\n reg.addScriptExecutor(baseDeployDel); // spec 3 = DeployDelegateScript\n\n acl.revokePermission(this, reg, reg.REGISTRY_MANAGER_ROLE());\n acl.setPermissionManager(_root, reg, reg.REGISTRY_MANAGER_ROLE());\n\n return reg;\n }\n}\n" + }, + "@aragon/os/contracts/factory/DAOFactory.sol": { + "keccak256": "0x60585270378bc1c725befb3449f4c48a744155bdf8fc659b7a72964247d36b78", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/factory/DAOFactory.sol" + ], + "content": "pragma solidity 0.4.18;\n\nimport \"../kernel/Kernel.sol\";\nimport \"../kernel/KernelProxy.sol\";\n\nimport \"../acl/ACL.sol\";\n\nimport \"./EVMScriptRegistryFactory.sol\";\n\n\ncontract DAOFactory {\n address public baseKernel;\n address public baseACL;\n EVMScriptRegistryFactory public regFactory;\n\n event DeployDAO(address dao);\n event DeployEVMScriptRegistry(address reg);\n\n function DAOFactory(address _regFactory) public {\n // No need to init as it cannot be killed by devops199\n baseKernel = address(new Kernel());\n baseACL = address(new ACL());\n\n if (_regFactory != address(0)) {\n regFactory = EVMScriptRegistryFactory(_regFactory);\n }\n }\n\n /**\n * @param _root Address that will be granted control to setup DAO permissions\n */\n function newDAO(address _root) public returns (Kernel dao) {\n dao = Kernel(new KernelProxy(baseKernel));\n\n address initialRoot = address(regFactory) != address(0) ? this : _root;\n dao.initialize(baseACL, initialRoot);\n\n ACL acl = ACL(dao.acl());\n\n if (address(regFactory) != address(0)) {\n bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE();\n bytes32 appManagerRole = dao.APP_MANAGER_ROLE();\n\n acl.grantPermission(regFactory, acl, permRole);\n\n acl.createPermission(regFactory, dao, appManagerRole, this);\n\n EVMScriptRegistry reg = regFactory.newEVMScriptRegistry(dao, _root);\n DeployEVMScriptRegistry(address(reg));\n\n acl.revokePermission(regFactory, dao, appManagerRole);\n acl.grantPermission(_root, acl, permRole);\n\n acl.setPermissionManager(address(0), dao, appManagerRole);\n acl.setPermissionManager(_root, acl, permRole);\n }\n\n DeployDAO(dao);\n }\n}" + }, + "./contracts/LPVault.sol": { + "keccak256": "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LPVault.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: RJ Ewing, Griff Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n/// @dev This contract holds ether securely for liquid pledging systems; for\n/// this iteration the funds will come often be escaped to the Giveth Multisig\n/// (safety precaution), but once fully tested and optimized this contract will\n/// be a safe place to store funds equipped with optional variable time delays\n/// to allow for an optional escapeHatch to be implemented in case of issues;\n/// future versions of this contract will be enabled for tokens\nimport \"./EscapableApp.sol\";\nimport \"./LiquidPledgingACLHelpers.sol\";\nimport \"giveth-common-contracts/contracts/ERC20.sol\";\n\n/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract\n/// to confirm and cancel payments in the `LiquidPledging` contract.\ncontract ILiquidPledging {\n function confirmPayment(uint64 idPledge, uint amount) public;\n function cancelPayment(uint64 idPledge, uint amount) public;\n}\n\n/// @dev `LPVault` is a higher level contract built off of the `Escapable`\n/// contract that holds funds for the liquid pledging system.\ncontract LPVault is EscapableApp, LiquidPledgingACLHelpers {\n\n bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256(\"CONFIRM_PAYMENT_ROLE\");\n bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256(\"CANCEL_PAYMENT_ROLE\");\n bytes32 constant public SET_AUTOPAY_ROLE = keccak256(\"SET_AUTOPAY_ROLE\");\n\n event AutoPaySet(bool autoPay);\n event EscapeFundsCalled(address token, uint amount);\n event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref);\n event CancelPayment(uint indexed idPayment, bytes32 indexed ref);\n event AuthorizePayment(\n uint indexed idPayment,\n bytes32 indexed ref,\n address indexed dest,\n address token,\n uint amount\n );\n\n enum PaymentStatus {\n Pending, // When the payment is awaiting confirmation\n Paid, // When the payment has been sent\n Canceled // When the payment will never be sent\n }\n\n /// @dev `Payment` is a public structure that describes the details of\n /// each payment the `ref` param makes it easy to track the movements of\n /// funds transparently by its connection to other `Payment` structs\n struct Payment {\n bytes32 ref; // an input that references details from other contracts\n address dest; // recipient of the ETH\n PaymentStatus state; // Pending, Paid or Canceled\n address token;\n uint amount; // amount of ETH (in wei) to be sent\n }\n\n bool public autoPay; // If false, payments will take 2 txs to be completed\n\n // @dev An array that contains all the payments for this LPVault\n Payment[] public payments;\n ILiquidPledging public liquidPledging;\n\n /// @dev The attached `LiquidPledging` contract is the only address that can\n /// call a function with this modifier\n modifier onlyLiquidPledging() {\n require(msg.sender == address(liquidPledging));\n _;\n }\n\n function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public {\n }\n\n function initialize(address _escapeHatchDestination) onlyInit public {\n require(false); // overload the EscapableApp\n _escapeHatchDestination;\n }\n\n /// @param _liquidPledging \n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external {\n super.initialize(_escapeHatchDestination);\n\n require(_liquidPledging != 0x0);\n liquidPledging = ILiquidPledging(_liquidPledging);\n }\n\n /// @notice Used to decentralize, toggles whether the LPVault will\n /// automatically confirm a payment after the payment has been authorized\n /// @param _automatic If true, payments will confirm instantly, if false\n /// the training wheels are put on and the owner must manually approve \n /// every payment\n function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) {\n autoPay = _automatic;\n AutoPaySet(autoPay);\n }\n\n /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner`\n /// must call `confirmPayment()` for a transfer to occur (training wheels);\n /// either way, a new payment is added to `payments[]` \n /// @param _ref References the payment will normally be the pledgeID\n /// @param _dest The address that payments will be sent to\n /// @param _amount The amount that the payment is being authorized for\n /// @return idPayment The id of the payment (needed by the owner to confirm)\n function authorizePayment(\n bytes32 _ref,\n address _dest,\n address _token,\n uint _amount\n ) external onlyLiquidPledging returns (uint)\n {\n uint idPayment = payments.length;\n payments.length ++;\n payments[idPayment].state = PaymentStatus.Pending;\n payments[idPayment].ref = _ref;\n payments[idPayment].dest = _dest;\n payments[idPayment].token = _token;\n payments[idPayment].amount = _amount;\n\n AuthorizePayment(idPayment, _ref, _dest, _token, _amount);\n\n if (autoPay) {\n _doConfirmPayment(idPayment);\n }\n\n return idPayment;\n }\n\n /// @notice Allows the owner to confirm payments; since \n /// `authorizePayment` is the only way to populate the `payments[]` array\n /// this is generally used when `autopay` is `false` after a payment has\n /// has been authorized\n /// @param _idPayment Array lookup for the payment.\n function confirmPayment(uint _idPayment) public {\n Payment storage p = payments[_idPayment];\n require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount)));\n _doConfirmPayment(_idPayment);\n }\n\n /// @notice When `autopay` is `false` and after a payment has been authorized\n /// to allow the owner to cancel a payment instead of confirming it.\n /// @param _idPayment Array lookup for the payment.\n function cancelPayment(uint _idPayment) external {\n _doCancelPayment(_idPayment);\n }\n\n /// @notice `onlyOwner` An efficient way to confirm multiple payments\n /// @param _idPayments An array of multiple payment ids\n function multiConfirm(uint[] _idPayments) external {\n for (uint i = 0; i < _idPayments.length; i++) {\n confirmPayment(_idPayments[i]);\n }\n }\n\n /// @notice `onlyOwner` An efficient way to cancel multiple payments\n /// @param _idPayments An array of multiple payment ids\n function multiCancel(uint[] _idPayments) external {\n for (uint i = 0; i < _idPayments.length; i++) {\n _doCancelPayment(_idPayments[i]);\n }\n }\n\n /// Transfer tokens to the escapeHatchDestination.\n /// Used as a safety mechanism to prevent the vault from holding too much value\n /// before being thoroughly battle-tested.\n /// @param _token to transfer\n /// @param _amount to transfer\n function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) {\n require(_token != 0x0);\n ERC20 token = ERC20(_token);\n require(token.transfer(escapeHatchDestination, _amount));\n EscapeFundsCalled(_token, _amount);\n }\n\n /// @return The total number of payments that have ever been authorized\n function nPayments() external view returns (uint) {\n return payments.length;\n }\n\n /// @notice Transfers ETH according to the data held within the specified\n /// payment id (internal function)\n /// @param _idPayment id number for the payment about to be fulfilled \n function _doConfirmPayment(uint _idPayment) internal {\n require(_idPayment < payments.length);\n Payment storage p = payments[_idPayment];\n require(p.state == PaymentStatus.Pending);\n\n p.state = PaymentStatus.Paid;\n liquidPledging.confirmPayment(uint64(p.ref), p.amount);\n\n ERC20 token = ERC20(p.token);\n require(token.transfer(p.dest, p.amount)); // Transfers token to dest\n\n ConfirmPayment(_idPayment, p.ref);\n }\n\n /// @notice Cancels a pending payment (internal function)\n /// @param _idPayment id number for the payment \n function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) {\n require(_idPayment < payments.length);\n Payment storage p = payments[_idPayment];\n require(p.state == PaymentStatus.Pending);\n\n p.state = PaymentStatus.Canceled;\n\n liquidPledging.cancelPayment(uint64(p.ref), p.amount);\n\n CancelPayment(_idPayment, p.ref);\n }\n}\n" + }, + "./contracts/test/TestSimpleDelegatePlugin.sol": { + "keccak256": "0xfde1c913002ece2fae9c5b208971d9b1f56b2a30762e673901c6d2131d28919f", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleDelegatePlugin.sol" + ], + "content": "pragma solidity ^0.4.11;\n\nimport \"../LiquidPledging.sol\";\n\n// simple liquidPledging plugin contract for testing whitelist\ncontract TestSimpleDelegatePlugin {\n\n uint64 public idDelegate;\n LiquidPledging liquidPledging;\n bool initPending;\n\n event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n\n function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) {\n require(msg.sender != tx.origin); // Avoids being created directly by mistake.\n liquidPledging = _liquidPledging;\n initPending = true;\n }\n\n function init(\n string name,\n string url,\n uint64 commitTime\n ) {\n require(initPending);\n idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this));\n initPending = false;\n }\n\n function beforeTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external returns (uint maxAllowed) {\n require(!initPending);\n BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n function afterTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external {\n require(!initPending);\n AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n}\n\ncontract TestSimpleDelegatePluginFactory {\n\n function TestSimpleDelegatePluginFactory (\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 commitTime\n ) {\n TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging);\n d.init(name, url, commitTime);\n }\n\n}\n" + }, + "./contracts/test/TestSimpleProjectPlugin.sol": { + "keccak256": "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleProjectPlugin.sol" + ], + "content": "pragma solidity ^0.4.11;\n\nimport \"../LiquidPledging.sol\";\n\n// simple liquidPledging plugin contract for testing whitelist\ncontract TestSimpleProjectPlugin {\n\n uint64 public idProject;\n bool initPending;\n\n event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n\n function TestSimpleProjectPlugin() {\n require(msg.sender != tx.origin); // Avoids being created directly by mistake.\n initPending = true;\n }\n\n function init(\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 parentProject\n ) {\n require(initPending);\n idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this));\n initPending = false;\n }\n\n function beforeTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external returns (uint maxAllowed) {\n require(!initPending);\n BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n function afterTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external {\n require(!initPending);\n AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n}\n" + }, + "./contracts/test/TestSimpleProjectPluginFactory.sol": { + "keccak256": "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleProjectPluginFactory.sol" + ], + "content": "pragma solidity ^0.4.11;\n\nimport \"./TestSimpleProjectPlugin.sol\";\nimport \"../LiquidPledging.sol\";\n\n// simple factory for deploying TestSimpleProjectPlugin.sol contract\ncontract TestSimpleProjectPluginFactory {\n\n function deploy(\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 parentProject\n ) {\n TestSimpleProjectPlugin p = new TestSimpleProjectPlugin();\n p.init(liquidPledging, name, url, parentProject);\n }\n\n}\n" + } + }, "settings": { "optimizer": { "enabled": true, diff --git a/build/solcStandardOutput.json b/build/solcStandardOutput.json index b548310..1de589c 100644 --- a/build/solcStandardOutput.json +++ b/build/solcStandardOutput.json @@ -194,6 +194,17 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -250,19 +261,19 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b610a058061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029", - "sourceMap": "1201:2687:0:-;;;;;;;;;;;;;;;;;" + "object": "6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029", + "sourceMap": "1201:2912:0:-;;;1737:109;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1809:30:0;;-1:-1:-1;1737:109:0;1809:5;;;;;;:30;:::i;:::-;1737:109;1201:2912;;3449:195;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1201:2912:0:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61077c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61078b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061079a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610876565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109c7565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b610738610896565b600160a060020a038116151561074d57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606454600160a060020a031681565b60006107a46108b0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561080b5780820151838201526020016107f3565b50505050905090810190601f1680156108385780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561085657600080fd5b6102c65a03f1151561086757600080fd5b50505060405180519392505050565b61087e6109c7565b61089082600160a060020a031661097c565b92915050565b600354156108a357600080fd5b6108ab6109c3565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561085657600080fd5b6109846109c7565b60016040518059106109935750595b9080825280602002602001820160405250905081816000815181106109b457fe5b60209081029091010152919050565b4390565b602060405190810160405260008152905600a165627a7a723058204780fa639df3cf57a01023e207978ec55d23df0f7480e5e5340e5873be2ffba70029", - "sourceMap": "1201:2687:0:-;;;;;;;;;-1:-1:-1;;;1201:2687:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;;;;;;;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1330:88:0;;;;;;;;;;;;2001:207;;;;;;;;;;-1:-1:-1;;;;;2001:207:0;;;;;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;492:1:24;2416:624:0;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;2001:207::-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:18;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;767:94:27:-;842:12;767:94;:::o;1201:2687:0:-;;;;;;;;;;;;;:::o" + "object": "6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029", + "sourceMap": "1201:2912:0:-;;;;;;;;;-1:-1:-1;;;1201:2912:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;;;;;;;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1330:88:0;;;;;;;;;;;;2116:116;;;;;;;;;;-1:-1:-1;;;;;2116:116:0;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;492:1:23;2440:626:0;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;2116:116::-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;:::-;2116:116;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:17;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1201:2912:0:-;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { - "codeDepositCost": "513000", - "executionCost": "544", - "totalCost": "513544" + "codeDepositCost": "515400", + "executionCost": "infinite", + "totalCost": "infinite" }, "external": { "ESCAPE_HATCH_CALLER_ROLE()": "462", @@ -274,12 +285,13 @@ "escapeHatchDestination()": "809", "getExecutor(bytes)": "infinite", "getInitializationBlock()": "502", - "initialize(address)": "41353", + "initialize(address)": "41382", "isTokenEscapable(address)": "717", "kernel()": "787" }, "internal": { - "_blacklistEscapeToken(address)": "infinite" + "_blacklistEscapeToken(address)": "infinite", + "_init(address)": "40697" } }, "methodIdentifiers": { @@ -579,7 +591,7 @@ "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029", - "sourceMap": "83:175:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;192:63:2;;;;;;;;;;;;57:58:42;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:42;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o" + "sourceMap": "83:175:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;192:63:2;;;;;;;;;;;;57:58:41;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:41;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o" }, "gasEstimates": { "creation": { @@ -928,17 +940,17 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "606060405234156200001057600080fd5b604051604080620053f283398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001e3183390190565b6040516115e58062003e0d83390190565b611ccd80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd000296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "164:2492:3:-;;;369:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;443:1:3;;-1:-1:-1;521:12:37;;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:37;-1:-1:-1;;;;;500:34:37;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:37;-1:-1:-1;;;;;544:28:37;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:37;-1:-1:-1;;;;;628:50:37;;;;;583:106;-1:-1:-1;;;;;;464:15:3;;;;456:24;;;;;;-1:-1:-1;;;;;498:12:3;;;;490:21;;;;;;521:9;:22;;-1:-1:-1;;;;;521:22:3;;;-1:-1:-1;;;;;;521:22:3;;;;;;;553:6;:16;;;;;;;;;;;164:2492;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" + "object": "606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f2500296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", + "sourceMap": "164:2353:3:-;;;369:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;443:1:3;;-1:-1:-1;521:12:36;;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:36;-1:-1:-1;;;;;500:34:36;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:36;-1:-1:-1;;;;;544:28:36;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:36;-1:-1:-1;;;;;628:50:36;;;;;583:106;-1:-1:-1;;;;;;464:15:3;;;;456:24;;;;;;-1:-1:-1;;;;;498:12:3;;;;490:21;;;;;;521:9;:22;;-1:-1:-1;;;;;521:22:3;;;-1:-1:-1;;;;;;521:22:3;;;;;;;553:6;:16;;;;;;;;;;;164:2353;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46116c8565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b600080600080600087600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fec57600080fd5b6102c65a03f11515610ffd57600080fd5b5050506040518051955050600160a060020a038916633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104e57600080fd5b6102c65a03f1151561105f57600080fd5b5050506040518051945050600160a060020a03871663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110b057600080fd5b6102c65a03f115156110c157600080fd5b5050506040518051935050600160a060020a03871663a91c86a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111257600080fd5b6102c65a03f1151561112357600080fd5b5050506040518051925050600160a060020a0386166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117457600080fd5b6102c65a03f1151561118557600080fd5b5050506040518051915050600160a060020a03891663be0384788b89868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156111f957600080fd5b6102c65a03f1151561120a57600080fd5b50505088600160a060020a031663be0384788b88868e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561127657600080fd5b6102c65a03f1151561128757600080fd5b50505088600160a060020a031663be0384788b88848e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156112f357600080fd5b6102c65a03f1151561130457600080fd5b50505088600160a060020a031663be0384788789858e60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561137057600080fd5b6102c65a03f1151561138157600080fd5b50505088600160a060020a0316630a8ed3db8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113e557600080fd5b6102c65a03f115156113f657600080fd5b50505088600160a060020a0316630a8ed3db8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561145a57600080fd5b6102c65a03f1151561146b57600080fd5b50505088600160a060020a0316639d0effdb308a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114cf57600080fd5b6102c65a03f115156114e057600080fd5b50505088600160a060020a0316639d0effdb308b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154457600080fd5b6102c65a03f1151561155557600080fd5b50505088600160a060020a031663afd925df8b8a8860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156115b957600080fd5b6102c65a03f115156115ca57600080fd5b50505088600160a060020a031663afd925df8b8b8760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561162e57600080fd5b6102c65a03f1151561163f57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f687604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02586604051600160a060020a03909116815260200160405180910390a150505050505050505050565b6040516105c9806116d98339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582080139aa3503e6a0ade8cbc3710d4b4fbf339c9a291f8ed6e7c947c85053defd00029", - "sourceMap": "164:2492:3:-;;;;;;;;;-1:-1:-1;;;164:2492:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22:37;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:37;;;;;;;;;;;;;;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;246:21:3;;;;;;;;;;;;797:1010:37;;;;;;;;;;-1:-1:-1;;;;;797:1010:37;;;;;336:77:42;;;;;;;;;;;;192:63:2;;;;;;;;;;;;247:42:37;;;;;;;;;;;;57:58:42;;;;;;;;;;;;492:75;;;;;;;;;;;;188:25:37;;;;;;;;;;;;582:753:3;;;;;;;;;;-1:-1:-1;;;;;582:753:3;;;;;;;;;;;;420:66:42;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:42;;;;;;;;;;;;216:24:3;;;;;;;;;;;;219:22:37;;;-1:-1:-1;;;;;219:22:37;;:::o;258:72:42:-;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;246:21:3:-;;;-1:-1:-1;;;;;246:21:3;;:::o;797:1010:37:-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:37;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:37;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:37;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:37;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:37;;;;;;-1:-1:-1;;;;;998:36:37;;;;;;;;;;;;;;;-1:-1:-1;998:36:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:37;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:37;1084:33;;-1:-1:-1;1080:696:37;;1152:3;-1:-1:-1;;;;;1152:27:37;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:37;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:37;;;;-1:-1:-1;1257:19:37;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:37;;;;;;-1:-1:-1;;;;;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:37;;-1:-1:-1;;;;;1318:20:37;;;;-1:-1:-1;1318:20:37;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:37;;;;;;-1:-1:-1;;;;;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:37;;-1:-1:-1;;;;;1416:10:37;;-1:-1:-1;1416:31:37;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:37;;;;;;-1:-1:-1;;;;;1416:43:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:37;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:37;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:37;;;;;;-1:-1:-1;;;;;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:37;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:37;;;;;;-1:-1:-1;;;;;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:37;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:37;;;;;;-1:-1:-1;;;;;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:37;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:37;;;;;;-1:-1:-1;;;;;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:37;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;336:77:42:-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;247:42:37:-;;;-1:-1:-1;;;;;247:42:37;;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;188:25:37:-;;;-1:-1:-1;;;;;188:25:37;;:::o;582:753:3:-;662:13;700:7;738:22;875:9;952:17;678:12;685:4;678:6;:12::i;:::-;662:28;;714:6;-1:-1:-1;;;;;714:10:3;;:12;;;;;;;;;;;-1:-1:-1;;;714:12:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;763:23:3;;;:25;;;;;;;;;;;-1:-1:-1;;;763:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;799:20:3;;;820:4;834:6;763:25;820:4;799:65;;-1:-1:-1;;;799:65:3;;;;;;-1:-1:-1;;;;;799:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;799:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;895:6;-1:-1:-1;;;;;895:21:3;;168:18:2;;;;;;;;;;;;;;;931:9:3;;-1:-1:-1;;;;;931:9:3;;895:46;;;;;;;-1:-1:-1;;;895:46:3;;;;;;;;;;;;;-1:-1:-1;;;;;895:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;987:21:3;;;228:27:2;;;;;;;;;;;;;;;1020:6:3;;-1:-1:-1;;;;;1020:6:3;;987:40;;;;;;;-1:-1:-1;;;987:40:3;;;;;;;;;;;;;-1:-1:-1;;;;;987:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1038:12:3;;;987:40;1064:23;1038:50;;-1:-1:-1;;;1038:50:3;;;;;;-1:-1:-1;;;;;1038:50:3;;;;;;;;;;;;;;;-1:-1:-1;1038:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1098:2;-1:-1:-1;;;;;1098:13:3;;1120:1;1124:23;1098:50;;-1:-1:-1;;;1098:50:3;;;;;;-1:-1:-1;;;;;1098:50:3;;;;;;;;;;;;;;;-1:-1:-1;1098:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1209:13:3;;;;1223:25;:27;;;;;;;;;;;-1:-1:-1;;;1223:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228::2;;;;;;;;;;;;;;1271:2:3;1209:66;;;;;;;;-1:-1:-1;;;1209:66:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1209:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1286:42;1302:5;1309:3;1314:6;1322:1;1325:2;1286:15;:42::i;:::-;582:753;;;;;;;:::o;420:66:42:-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o;216:24:3:-;;;-1:-1:-1;;;;;216:24:3;;:::o;1341:1313::-;1454:22;1514:16;1572:23;1636;1698:25;1479:6;-1:-1:-1;;;;;1479:23:3;;:25;;;;;;;;;;;-1:-1:-1;;;1479:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1533:27:3;;;:29;;;;;;;;;;;-1:-1:-1;;;1533:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1598:26:3;;;:28;;;;;;;;;;;-1:-1:-1;;;1598:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1662:24:3;;;:26;;;;;;;;;;;-1:-1:-1;;;1662:26:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1726:22:3;;;:24;;;;;;;;;;;-1:-1:-1;;;1726:24:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1761:20:3;;;1782:5;1797:1;1801:15;1782:5;1761:63;;-1:-1:-1;;;1761:63:3;;;;;;-1:-1:-1;;;;;1761:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1761:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1834:3;-1:-1:-1;;;;;1834:20:3;;1855:5;1870:2;1875:15;1892:5;1834:64;;-1:-1:-1;;;1834:64:3;;;;;;-1:-1:-1;;;;;1834:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1834:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1908:3;-1:-1:-1;;;;;1908:20:3;;1929:5;1944:2;1949:17;1968:5;1908:66;;-1:-1:-1;;;1908:66:3;;;;;;-1:-1:-1;;;;;1908:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1908:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:3;-1:-1:-1;;;;;1984:20:3;;2013:2;2026:1;2030:15;2047:5;1984:69;;-1:-1:-1;;;1984:69:3;;;;;;-1:-1:-1;;;;;1984:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1984:69:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2182:3;-1:-1:-1;;;;;2182:19:3;;2202:5;2217:6;2226:14;2182:59;;-1:-1:-1;;;2182:59:3;;;;;;-1:-1:-1;;;;;2182:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2182:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2251:3;-1:-1:-1;;;;;2251:19:3;;2271:5;2286:3;2292:8;2251:50;;-1:-1:-1;;;2251:50:3;;;;;;-1:-1:-1;;;;;2251:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2251:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2311:3;-1:-1:-1;;;;;2311:20:3;;2332:4;2346:6;2355:14;2311:59;;-1:-1:-1;;;2311:59:3;;;;;;-1:-1:-1;;;;;2311:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2311:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:3;-1:-1:-1;;;;;2380:20:3;;2401:4;2415:3;2421:8;2380:50;;-1:-1:-1;;;2380:50:3;;;;;;-1:-1:-1;;;;;2380:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2380:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2441:3;-1:-1:-1;;;;;2441:24:3;;2466:5;2481:6;2490:14;2441:64;;-1:-1:-1;;;2441:64:3;;;;;;-1:-1:-1;;;;;2441:64:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2441:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2515:3;-1:-1:-1;;;;;2515:24:3;;2540:5;2555:3;2561:8;2515:55;;-1:-1:-1;;;2515:55:3;;;;;;-1:-1:-1;;;;;2515:55:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2515:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2581:23;2601:1;2581:23;;-1:-1:-1;;;;;2581:23:3;;;;;;;;;;;;;;2614:33;2643:2;2614:33;;-1:-1:-1;;;;;2614:33:3;;;;;;;;;;;;;;1341:1313;;;;;;;;;;:::o;164:2492::-;;;;;;;;;;:::o" + "object": "6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f250029", + "sourceMap": "164:2353:3:-;;;;;;;;;-1:-1:-1;;;164:2353:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:36;;;;;;;;;;;;;;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;246:21:3;;;;;;;;;;;;797:1010:36;;;;;;;;;;-1:-1:-1;;;;;797:1010:36;;;;;336:77:41;;;;;;;;;;;;192:63:2;;;;;;;;;;;;247:42:36;;;;;;;;;;;;57:58:41;;;;;;;;;;;;492:75;;;;;;;;;;;;188:25:36;;;;;;;;;;;;582:755:3;;;;;;;;;;-1:-1:-1;;;;;582:755:3;;;;;;;;;;;;420:66:41;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:41;;;;;;;;;;;;216:24:3;;;;;;;;;;;;219:22:36;;;-1:-1:-1;;;;;219:22:36;;:::o;258:72:41:-;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;246:21:3:-;;;-1:-1:-1;;;;;246:21:3;;:::o;797:1010:36:-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:36;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:36;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:36;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:36;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:36;;;;;;-1:-1:-1;;;;;998:36:36;;;;;;;;;;;;;;;-1:-1:-1;998:36:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:36;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:36;1084:33;;-1:-1:-1;1080:696:36;;1152:3;-1:-1:-1;;;;;1152:27:36;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:36;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:36;;;;-1:-1:-1;1257:19:36;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:36;;;;;;-1:-1:-1;;;;;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:36;;-1:-1:-1;;;;;1318:20:36;;;;-1:-1:-1;1318:20:36;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:36;;;;;;-1:-1:-1;;;;;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:36;;-1:-1:-1;;;;;1416:10:36;;-1:-1:-1;1416:31:36;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:36;;;;;;-1:-1:-1;;;;;1416:43:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:36;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:36;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:36;;;;;;-1:-1:-1;;;;;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:36;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:36;;;;;;-1:-1:-1;;;;;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:36;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:36;;;;;;-1:-1:-1;;;;;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:36;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:36;;;;;;-1:-1:-1;;;;;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:36;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;336:77:41:-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;247:42:36:-;;;-1:-1:-1;;;;;247:42:36;;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;188:25:36:-;;;-1:-1:-1;;;;;188:25:36;;:::o;582:755:3:-;664:13;702:7;740:22;877:9;954:17;680:12;687:4;680:6;:12::i;:::-;664:28;;716:6;-1:-1:-1;;;;;716:10:3;;:12;;;;;;;;;;;-1:-1:-1;;;716:12:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;765:23:3;;;:25;;;;;;;;;;;-1:-1:-1;;;765:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;801:20:3;;;822:4;836:6;765:25;822:4;801:65;;-1:-1:-1;;;801:65:3;;;;;;-1:-1:-1;;;;;801:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;801:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;897:6;-1:-1:-1;;;;;897:21:3;;168:18:2;;;;;;;;;;;;;;;933:9:3;;-1:-1:-1;;;;;933:9:3;;897:46;;;;;;;-1:-1:-1;;;897:46:3;;;;;;;;;;;;;-1:-1:-1;;;;;897:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;989:21:3;;;228:27:2;;;;;;;;;;;;;;;1022:6:3;;-1:-1:-1;;;;;1022:6:3;;989:40;;;;;;;-1:-1:-1;;;989:40:3;;;;;;;;;;;;;-1:-1:-1;;;;;989:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1040:12:3;;;989:40;1066:23;1040:50;;-1:-1:-1;;;1040:50:3;;;;;;-1:-1:-1;;;;;1040:50:3;;;;;;;;;;;;;;;-1:-1:-1;1040:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:2;-1:-1:-1;;;;;1100:13:3;;1122:1;1126:23;1100:50;;-1:-1:-1;;;1100:50:3;;;;;;-1:-1:-1;;;;;1100:50:3;;;;;;;;;;;;;;;-1:-1:-1;1100:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1211:13:3;;;;1225:25;:27;;;;;;;;;;;-1:-1:-1;;;1225:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228::2;;;;;;;;;;;;;;1273:2:3;1211:66;;;;;;;;-1:-1:-1;;;1211:66:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1211:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:42;1304:5;1311:3;1316:6;1324:1;1327:2;1288:15;:42::i;:::-;582:755;;;;;;;:::o;420:66:41:-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o;216:24:3:-;;;-1:-1:-1;;;;;216:24:3;;:::o;1343:1172::-;1456:22;1516:16;1574:23;1638:25;1481:6;-1:-1:-1;;;;;1481:23:3;;:25;;;;;;;;;;;-1:-1:-1;;;1481:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1535:27:3;;;:29;;;;;;;;;;;-1:-1:-1;;;1535:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1600:26:3;;;:28;;;;;;;;;;;-1:-1:-1;;;1600:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1666:22:3;;;:24;;;;;;;;;;;-1:-1:-1;;;1666:24:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1701:20:3;;;1722:5;1737:1;1741:15;1722:5;1701:63;;-1:-1:-1;;;1701:63:3;;;;;;-1:-1:-1;;;;;1701:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1701:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1774:3;-1:-1:-1;;;;;1774:20:3;;1795:5;1810:2;1815:15;1832:5;1774:64;;-1:-1:-1;;;1774:64:3;;;;;;-1:-1:-1;;;;;1774:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1848:3;-1:-1:-1;;;;;1848:20:3;;1869:5;1884:2;1889:17;1908:5;1848:66;;-1:-1:-1;;;1848:66:3;;;;;;-1:-1:-1;;;;;1848:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1848:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2043:3;-1:-1:-1;;;;;2043:19:3;;2063:5;2078:6;2087:14;2043:59;;-1:-1:-1;;;2043:59:3;;;;;;-1:-1:-1;;;;;2043:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2043:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2112:3;-1:-1:-1;;;;;2112:19:3;;2132:5;2147:3;2153:8;2112:50;;-1:-1:-1;;;2112:50:3;;;;;;-1:-1:-1;;;;;2112:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2112:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2172:3;-1:-1:-1;;;;;2172:20:3;;2193:4;2207:6;2216:14;2172:59;;-1:-1:-1;;;2172:59:3;;;;;;-1:-1:-1;;;;;2172:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2172:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:3;-1:-1:-1;;;;;2241:20:3;;2262:4;2276:3;2282:8;2241:50;;-1:-1:-1;;;2241:50:3;;;;;;-1:-1:-1;;;;;2241:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2241:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2302:3;-1:-1:-1;;;;;2302:24:3;;2327:5;2342:6;2351:14;2302:64;;-1:-1:-1;;;2302:64:3;;;;;;-1:-1:-1;;;;;2302:64:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2302:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2376:3;-1:-1:-1;;;;;2376:24:3;;2401:5;2416:3;2422:8;2376:55;;-1:-1:-1;;;2376:55:3;;;;;;-1:-1:-1;;;;;2376:55:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:23;2462:1;2442:23;;-1:-1:-1;;;;;2442:23:3;;;;;;;;;;;;;;2475:33;2504:2;2475:33;;-1:-1:-1;;;;;2475:33:3;;;;;;;;;;;;;;1343:1172;;;;;;;;;:::o;164:2353::-;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { - "codeDepositCost": "1474600", + "codeDepositCost": "1429400", "executionCost": "infinite", "totalCost": "infinite" }, @@ -1384,20 +1396,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "AUTHORIZE_PAYMENT_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [], @@ -1515,6 +1513,17 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -1709,43 +1718,42 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6118218061001e6000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029", - "sourceMap": "1808:7827:4:-;;;;;;;;;;;;;;;;;" + "object": "606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029", + "sourceMap": "1808:7783:4:-;;;3705:102;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3705:102:4;;-1:-1:-1;1809:30:0;3705:102:4;1809:5:0;;;;;;:30;:::i;:::-;1737:109;3705:102:4;1808:7783;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1808:7783:4:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106101505763ffffffff60e060020a6000350416631b28591c81146101555780633baf35fb14610179578063485cc9551461019e5780634ad65a68146101c3578063539854cd146101d657806360b1e057146101e957806374041d1f146101fc57806380afdea81461022b5780638422927d1461023e578063866836ff14610254578063876ca09f1461026757806387d817891461027d578063892db057146102ee5780638b3dd749146103215780639b3fdf4c14610334578063a142d60814610347578063a1658fad14610366578063a4500c33146103c9578063a5426df1146103e1578063a91c86a61461040c578063b09927a11461041f578063b796105c14610432578063bbc3282014610450578063c4d66de814610463578063d4aae0c414610482578063f5b6123014610495578063f92a79ff146104a8578063ffd82d21146104f9575b600080fd5b341561016057600080fd5b610177600160a060020a0360043516602435610517565b005b341561018457600080fd5b61018c6106d7565b60405190815260200160405180910390f35b34156101a957600080fd5b610177600160a060020a03600435811690602435166106de565b34156101ce57600080fd5b61018c610739565b34156101e157600080fd5b61018c61076d565b34156101f457600080fd5b61018c6107a1565b341561020757600080fd5b61020f6107d5565b604051600160a060020a03909116815260200160405180910390f35b341561023657600080fd5b61018c6107e4565b341561024957600080fd5b6101776004356107ea565b341561025f57600080fd5b61018c6107f6565b341561027257600080fd5b61017760043561082a565b341561028857600080fd5b610293600435610833565b604051858152600160a060020a0385166020820152604081018460028111156102b857fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102f957600080fd5b61030d600160a060020a0360043516610884565b604051901515815260200160405180910390f35b341561032c57600080fd5b61018c6108a3565b341561033f57600080fd5b61018c6108a9565b341561035257600080fd5b610177600160a060020a0360043516610925565b341561037157600080fd5b61030d60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b7c95505050505050565b34156103d457600080fd5b6101776004351515610cba565b34156103ec57600080fd5b61018c600435600160a060020a0360243581169060443516606435610d57565b341561041757600080fd5b61018c610f55565b341561042a57600080fd5b61018c610f89565b341561043d57600080fd5b6101776004803560248101910135610fbd565b341561045b57600080fd5b61030d610ff0565b341561046e57600080fd5b610177600160a060020a0360043516610ff9565b341561048d57600080fd5b61020f611006565b34156104a057600080fd5b61020f611015565b34156104b357600080fd5b61020f60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061102495505050505050565b341561050457600080fd5b6101776004803560248101910135611100565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105548561112e565b61055f338383610b7c565b151561056a57600080fd5b600160a060020a038616151561057f57600080fd5b85935083600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156105d957600080fd5b6102c65a03f115156105ea57600080fd5b50505060405180519350508483101561060257600080fd5b606454600160a060020a038086169163a9059cbb91168760006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561066557600080fd5b6102c65a03f1151561067657600080fd5b50505060405180519050151561068b57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38686604051600160a060020a03909216825260208201526040908101905180910390a1505050505050565b607b545b90565b600354156106eb57600080fd5b6106f48161114e565b600160a060020a038216151561070957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b6107f3816111a7565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6107f38161132c565b607b80548290811061084157fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206109628461112e565b61096d338383610b7c565b151561097857600080fd5b600160a060020a03851660009081526065602052604090205460ff161561099e57600080fd5b600160a060020a0385161515610a3057606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109e757600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b75565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b0a57600080fd5b6102c65a03f11515610b1b57600080fd5b505050604051805190501515610b3057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b86611760565b60008084511115610b9f57835160200290508391508082525b600054600160a060020a03161580610cb0575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c46578082015183820152602001610c2e565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c9457600080fd5b6102c65a03f11515610ca557600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610cf48261153c565b610cff338383610b7c565b1515610d0a57600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b6000806040517f415554484f52495a455f5041594d454e545f524f4c450000000000000000000081526016016040518091039020610d958685611589565b610da0338383610b7c565b1515610dab57600080fd5b607b805493508390610dc09060018301611772565b506000607b84815481101515610dd257fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610e1057fe5b021790555087607b84815481101515610e2557fe5b6000918252602090912060049091020155607b805488919085908110610e4757fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555085607b84815481101515610e8c57fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084607b84815481101515610ed157fe5b6000918252602090912060036004909202010155600160a060020a03871688847f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08989604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610f4957610f498361132c565b50909695505050505050565b6040517f415554484f52495a455f5041594d454e545f524f4c45000000000000000000008152601601604051809103902081565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610feb57610fe3838383818110610fd757fe5b905060200201356111a7565b600101610fc0565b505050565b607a5460ff1681565b6003541561015057600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b600061102e6115ab565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561109557808201518382015260200161107d565b50505050905090810190601f1680156110c25780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156110e057600080fd5b6102c65a03f115156110f157600080fd5b50505060405180519392505050565b60005b81811015610feb5761112683838381811061111a57fe5b9050602002013561132c565b600101611103565b611136611760565b61114882600160a060020a031661169b565b92915050565b6003541561115b57600080fd5b6111636116e2565b600160a060020a038116151561117857600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60006040517f43414e43454c5f5041594d454e545f524f4c4500000000000000000000000000815260130160405180910390206111e38361169b565b6111ee338383610b7c565b15156111f957600080fd5b607b54841061120757600080fd5b607b80548590811061121557fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561124057fe5b1461124a57600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15156112e257600080fd5b6102c65a03f115156112f357600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b607b546000908190831061133f57600080fd5b607b80548490811061134d57fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561137857fe5b1461138257600080fd5b6113ca336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206113c58686600301546116fc565b610b7c565b15156113d557600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561145c57600080fd5b6102c65a03f1151561146d57600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b611544611760565b600060016040518059106115555750595b90808252806020026020018201604052509150829050808260008151811061157957fe5b6020908102909101015250919050565b611591611760565b6115a483600160a060020a0316836116fc565b9392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561167757600080fd5b6102c65a03f1151561168857600080fd5b50505060405180519250829150505b5090565b6116a3611760565b60016040518059106116b25750595b9080825280602002602001820160405250905081816000815181106116d357fe5b60209081029091010152919050565b600354156116ef57600080fd5b6116f761175c565b600355565b611704611760565b60026040518059106117135750595b90808252806020026020018201604052509050828160008151811061173457fe5b60209081029091010152818160018151811061174c57fe5b6020908102909101015292915050565b4390565b60206040519081016040526000815290565b815481835581811511610feb57600083815260209020610feb916106db9160049182028101918502015b8082111561169757600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161179c5600a165627a7a723058207f426e1234f10b4dc1cf5b58cf793d85648bc7bc244e3bf10024980f5374df3e0029", - "sourceMap": "1808:7827:4:-;;;;;;;;;-1:-1:-1;;;1808:7827:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7806:372;;;;;;;;;;-1:-1:-1;;;;;7806:372:4;;;;;;;;;8260:87;;;;;;;;;;;;;;;;;;;;;;;;;;;4259:255;;;;;;;;;;-1:-1:-1;;;;;4259:255:4;;;;;;;;;;1960:78;;;;;;;;;;;;2134:72;;;;;;;;;;;;68:84:31;;;;;;;;;;;;3516:37:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;3516:37:4;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;6834:92:4;;;;;;;;;;;;;;1874:80;;;;;;;;;;;;6522:94;;;;;;;;;;;;;;3485:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3485:25:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3485:25:4;-1:-1:-1;;;;;3485:25:4;;;;;;;;;;;;;;;;;;;;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;;;;;;;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;4847:153:4;;;;;;;;;;;;;;;;5531:681;;;;;;;;;;;;-1:-1:-1;;;;;5531:681:4;;;;;;;;;;;;2044:84;;;;;;;;;;;;1330:88:0;;;;;;;;;;;;7376:169:4;;;;;;;;;;;;;;;;;;;;;3336:19;;;;;;;;;;;;3795:162;;;;;;;;;;-1:-1:-1;;;;;3795:162:4;;;;;86:21:23;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;7066:171:4;;;;;;;;;;;;;;;;;;;;;7806:372;7951:11;7988:12;1381:37:0;;;;;;;;;;;;;;7896:11:4;7900:6;7896:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;7927:13:4;;;;7919:22;;;;;;7971:6;7951:27;;8003:5;-1:-1:-1;;;;;8003:15:4;;8019:4;8003:21;;;;;;;;-1:-1:-1;;;8003:21:4;;;;;;-1:-1:-1;;;;;8003:21:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8042:18:4;;;;8034:27;;;;;;8094:22;;-1:-1:-1;;;;;8079:14:4;;;;;;8094:22;8118:7;8094:22;8079:47;;;;;;;-1:-1:-1;;;8079:47:4;;;;;;-1:-1:-1;;;;;8079:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8071:56;;;;;;;;8137:34;8155:6;8163:7;8137:34;;-1:-1:-1;;;;;8137:34:4;;;;;;;;;;;;;;;;;;;;7806:372;;;;;;:::o;8260:87::-;8325:8;:15;8260:87;;:::o;4259:255::-;140:19:27;;:24;132:33;;;;;;4365:41:4;4382:23;4365:16;:41::i;:::-;-1:-1:-1;;;;;4425:22:4;;;;4417:31;;;;;;-1:-1:-1;4458:14:4;:49;;-1:-1:-1;;4458:49:4;-1:-1:-1;;;;;4458:49:4;;;;;;;;;;4259:255::o;1960:78::-;2006:32;;;;;;;;;;;;;;1960:78;:::o;2134:72::-;2177:29;;;;;;;;;;;;;;2134:72;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;3516:37:4:-;;;-1:-1:-1;;;;;3516:37:4;;:::o;113:20:23:-;;;;:::o;6834:92:4:-;6891:28;6908:10;6891:16;:28::i;:::-;6834:92;:::o;1874:80::-;1921:33;;;;;;;;;;;;;;1874:80;:::o;6522:94::-;6580:29;6598:10;6580:17;:29::i;3485:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3485:25:4;;;;-1:-1:-1;;;3485:25:4;;;;;;;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;492:1:24;2416:624:0;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;4847:153:4:-;2177:29;;;;;;;;;;;;;;4917:15;4921:10;4917:3;:15::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;4944:7:4;:20;;-1:-1:-1;;4944:20:4;;;;;;;;;4974:19;;4944:20;4985:7;4974:19;;;;;;;;;;;;;;;;4847:153;;;:::o;5531:681::-;5723:4;5743:14;2093:35;;;;;;;;;;;;;;5693:19;5697:5;5704:7;5693:3;:19::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;5760:8:4;:15;;;-1:-1:-1;5760:15:4;;5785:18;;;;;;:::i;:::-;;5841:21;5813:8;5822:9;5813:19;;;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:49;;-1:-1:-1;;5813:49:4;-1:-1:-1;;;5813:49:4;;;;;;;;;;;;;;5898:4;5872:8;5881:9;5872:19;;;;;;;;;;;;;;;;;;;;;;;:30;5912:8;:19;;5939:5;;5912:8;5921:9;;5912:19;;;;;;;;;;;;;;;;:24;;;:32;;;;;-1:-1:-1;;;;;5912:32:4;;;;;-1:-1:-1;;;;;5912:32:4;;;;;;5982:6;5954:8;5963:9;5954:19;;;;;;;;;;;;;;;;;;;;:25;;;:34;;;;;-1:-1:-1;;;;;5954:34:4;;;;;-1:-1:-1;;;;;5954:34:4;;;;;;6027:7;5998:8;6007:9;5998:19;;;;;;;;;;;;;;;;;;:26;:19;;;;;:26;:36;-1:-1:-1;;;;;6045:57:4;;6073:4;6062:9;6045:57;6086:6;6094:7;6045:57;;-1:-1:-1;;;;;6045:57:4;;;;;;;;;;;;;;;;;;;;6117:7;;;;6113:66;;;6140:28;6158:9;6140:17;:28::i;:::-;-1:-1:-1;6196:9:4;;5531:681;-1:-1:-1;;;;;;5531:681:4:o;2044:84::-;2093:35;;;;;;;;;;;;;;2044:84;:::o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;7376:169:4:-;7441:6;7436:103;7453:22;;;7436:103;;;7496:32;7513:11;;7525:1;7513:14;;;;;;;;;;;;;7496:16;:32::i;:::-;7477:3;;7436:103;;;7376:169;;;:::o;3336:19::-;;;;;;:::o;3795:162::-;140:19:27;;:24;132:33;;;;;86:21:23;;;-1:-1:-1;;;;;86:21:23;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;7066:171:4:-;7132:6;7127:104;7144:22;;;7127:104;;;7187:33;7205:11;;7217:1;7205:14;;;;;;;;;;;;;7187:17;:33::i;:::-;7168:3;;7127:104;;354:101:18;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;2001:207:0:-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;9232:401:4:-;9385:17;2006:32;;;;;;;;;;;;;;9311:15;9315:10;9311:3;:15::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;9359:8:4;:15;9346:28;;9338:37;;;;;;9405:8;:20;;9414:10;;9405:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;9443:7:4;;;;-1:-1:-1;;;9443:7:4;;;;:32;;;;;;;;;9435:41;;;;;;9487:7;;;:32;;-1:-1:-1;;9487:32:4;;;;;9530:14;;9566:5;;9574:8;;;;-1:-1:-1;;;;;9530:14:4;;;;:28;;9566:5;9530:53;;-1:-1:-1;;;9530:53:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9530:53:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9620:5:4;;;-1:-1:-1;9608:10:4;9594:32;;;;;;;;;;9232:401;;;;:::o;8546:562::-;8630:8;:15;8656:17;;;;8617:28;;8609:37;;;;;;8676:8;:20;;8685:10;;8676:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;8714:7:4;;;;-1:-1:-1;;;8714:7:4;;;;:32;;;;;;;;;8706:41;;;;;;8765:71;8776:10;1921:33;;;;;;;;;;;;;;8810:25;8814:10;8826:1;:8;;;8810:3;:25::i;:::-;8765:10;:71::i;:::-;8757:80;;;;;;;;8858:18;8848:7;;:28;;-1:-1:-1;;8848:28:4;-1:-1:-1;;;8848:28:4;;;8886:14;;8923:5;;8931:8;;;;-1:-1:-1;;;;;8886:14:4;;;;:29;;8923:5;8886:54;;-1:-1:-1;;;8886:54:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8886:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8971:7:4;;;;;9012:6;;;9020:8;;;;-1:-1:-1;;;;;8971:7:4;;;;-1:-1:-1;8971:7:4;;8997:14;;9012:6;;8971:7;8997:32;;;;;;;-1:-1:-1;;;8997:32:4;;;;;;-1:-1:-1;;;;;8997:32:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8989:41;;;;;;;;9095:5;;9083:10;9068:33;;;;;;;;;;8546:562;;;:::o;315:191:6:-;359:8;;:::i;:::-;406:7;394:1;383:13;;;;;;;;;;;;;;;;;;;;;;;;379:17;;452:1;446:7;;497:2;490:1;492;490:4;;;;;;;;;;;;;;;;:9;-1:-1:-1;315:191:6;;-1:-1:-1;315:191:6:o;732:126:18:-;792:11;;:::i;:::-;822:29;834:2;-1:-1:-1;;;;;826:11:18;847:2;822:3;:29::i;:::-;815:36;732:126;-1:-1:-1;;;732:126:18:o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1481:148:18:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:18:o;767:94:27:-;842:12;767:94;:::o;1808:7827:4:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1808:7827:4;;;;;;;;-1:-1:-1;;1808:7827:4;;;;;;;;;;" + "object": "6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029", + "sourceMap": "1808:7783:4:-;;;;;;;;;-1:-1:-1;;;1808:7783:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:291;;;;;;;;;;-1:-1:-1;;;;;7931:291:4;;;;;;;;;8304:89;;;;;;;;;;;;;;;;;;;;;;;;;;;4277:255;;;;;;;;;;-1:-1:-1;;;;;4277:255:4;;;;;;;;;;1960:78;;;;;;;;;;;;2044:72;;;;;;;;;;;;68:84:30;;;;;;;;;;;;3426:37:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:37:4;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;6960:94:4;;;;;;;;;;;;;;1874:80;;;;;;;;;;;;6508:234;;;;;;;;;;;;;;3395:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3395:25:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3395:25:4;-1:-1:-1;;;;;3395:25:4;;;;;;;;;;;;;;;;;;;;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;;;;;;;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;4865:153:4;;;;;;;;;;;;;;;;5549:649;;;;;;;;;;;;-1:-1:-1;;;;;5549:649:4;;;;;;;;;;;;1330:88:0;;;;;;;;;;;;7501:169:4;;;;;;;;;;;;;;;;;;;;;3246:19;;;;;;;;;;;;3813:162;;;;;;;;;;-1:-1:-1;;;;;3813:162:4;;;;;86:21:22;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;7194:168:4;;;;;;;;;;;;;;;;;;;;;7931:291;8078:11;1381:37:0;;;;;;;;;;;;;;8023:11:4;8027:6;8023:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;8054:13:4;;;;8046:22;;;;;;8138;;8098:6;;-1:-1:-1;;;;;;8123:14:4;;;;;;8138:22;8162:7;8138:22;8123:47;;;;;;;-1:-1:-1;;;8123:47:4;;;;;;-1:-1:-1;;;;;8123:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8115:56;;;;;;;;8181:34;8199:6;8207:7;8181:34;;-1:-1:-1;;;;;8181:34:4;;;;;;;;;;;;;;;;;;;;7931:291;;;;;:::o;8304:89::-;8371:8;:15;8304:89;;:::o;4277:255::-;140:19:26;;:24;132:33;;;;;;4383:41:4;4400:23;4383:16;:41::i;:::-;-1:-1:-1;;;;;4443:22:4;;;;4435:31;;;;;;-1:-1:-1;4476:14:4;:49;;-1:-1:-1;;4476:49:4;-1:-1:-1;;;;;4476:49:4;;;;;;;;;;4277:255::o;1960:78::-;2006:32;;;;;;;;;;;;;;1960:78;:::o;2044:72::-;2087:29;;;;;;;;;;;;;;2044:72;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;3426:37:4:-;;;-1:-1:-1;;;;;3426:37:4;;:::o;113:20:22:-;;;;:::o;6960:94:4:-;7019:28;7036:10;7019:16;:28::i;:::-;6960:94;:::o;1874:80::-;1921:33;;;;;;;;;;;;;;1874:80;:::o;6508:234::-;6566:17;6586:8;6595:10;6586:20;;;;;;;;;;;;;;;;;;;;6566:40;;6624:71;6635:10;1921:33;;;;;;;;;;;;;;6669:25;6673:10;6685:1;:8;;;6669:3;:25::i;:::-;6624:10;:71::i;:::-;6616:80;;;;;;;;6706:29;6724:10;6706:17;:29::i;:::-;6508:234;;:::o;3395:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3395:25:4;;;;-1:-1:-1;;;3395:25:4;;;;;;;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;492:1:23;2440:626:0;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;4865:153:4:-;2087:29;;;;;;;;;;;;;;4935:15;4939:10;4935:3;:15::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;4962:7:4;:20;;-1:-1:-1;;4962:20:4;;;;;;;;;4992:19;;4962:20;5003:7;4992:19;;;;;;;;;;;;;;;;4865:153;;;:::o;5549:649::-;3665:14;;5709:4;;;;3643:10;-1:-1:-1;;;;;3643:37:4;;;3665:14;;3643:37;3635:46;;;;;;-1:-1:-1;5746:8:4;:15;;;;;5771:18;;;;;;:::i;:::-;;5827:21;5799:8;5808:9;5799:19;;;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:49;;-1:-1:-1;;5799:49:4;-1:-1:-1;;;5799:49:4;;;;;;;;;;;;;;5884:4;5858:8;5867:9;5858:19;;;;;;;;;;;;;;;;;;;;;;;:30;5898:8;:19;;5925:5;;5898:8;5907:9;;5898:19;;;;;;;;;;;;;;;;:24;;;:32;;;;;-1:-1:-1;;;;;5898:32:4;;;;;-1:-1:-1;;;;;5898:32:4;;;;;;5968:6;5940:8;5949:9;5940:19;;;;;;;;;;;;;;;;;;;;:25;;;:34;;;;;-1:-1:-1;;;;;5940:34:4;;;;;-1:-1:-1;;;;;5940:34:4;;;;;;6013:7;5984:8;5993:9;5984:19;;;;;;;;;;;;;;;;;;:26;:19;;;;;:26;:36;-1:-1:-1;;;;;6031:57:4;;6059:4;6048:9;6031:57;6072:6;6080:7;6031:57;;-1:-1:-1;;;;;6031:57:4;;;;;;;;;;;;;;;;;;;;6103:7;;;;6099:66;;;6126:28;6144:9;6126:17;:28::i;:::-;6182:9;5549:649;-1:-1:-1;;;;;5549:649:4:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;7501:169:4:-;7566:6;7561:103;7578:22;;;7561:103;;;7621:32;7638:11;;7650:1;7638:14;;;;;;;;;;;;;7621:16;:32::i;:::-;7602:3;;7561:103;;;7501:169;;;:::o;3246:19::-;;;;;;:::o;3813:162::-;140:19:26;;:24;132:33;;;;;86:21:22;;;-1:-1:-1;;;;;86:21:22;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;7194:168:4:-;7260:6;7255:101;7272:22;;;7255:101;;;7315:30;7330:11;;7342:1;7330:14;;;;;;;;;;;;;7315;:30::i;:::-;7296:3;;7255:101;;354::17;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;9188:401:4:-;9341:17;2006:32;;;;;;;;;;;;;;9267:15;9271:10;9267:3;:15::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;9315:8:4;:15;9302:28;;9294:37;;;;;;9361:8;:20;;9370:10;;9361:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;9399:7:4;;;;-1:-1:-1;;;9399:7:4;;;;:32;;;;;;;;;9391:41;;;;;;9443:7;;;:32;;-1:-1:-1;;9443:32:4;;;;;9486:14;;9522:5;;9530:8;;;;-1:-1:-1;;;;;9486:14:4;;;;:28;;9522:5;9486:53;;-1:-1:-1;;;9486:53:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9486:53:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9576:5:4;;;-1:-1:-1;9564:10:4;9550:32;;;;;;;;;;9188:401;;;;:::o;1481:148:17:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:17:o;8592:472:4:-;8676:8;:15;8702:17;;;;8663:28;;8655:37;;;;;;8722:8;:20;;8731:10;;8722:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;8760:7:4;;;;-1:-1:-1;;;8760:7:4;;;;:32;;;;;;;;;8752:41;;;;;;8814:18;8804:7;;:28;;-1:-1:-1;;8804:28:4;-1:-1:-1;;;8804:28:4;;;8842:14;;8879:5;;8887:8;;;;-1:-1:-1;;;;;8842:14:4;;;;:29;;8879:5;8842:54;;-1:-1:-1;;;8842:54:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8842:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8927:7:4;;;;;8968:6;;;8976:8;;;;-1:-1:-1;;;;;8927:7:4;;;;-1:-1:-1;8927:7:4;;8953:14;;8968:6;;8927:7;8953:32;;;;;;;-1:-1:-1;;;8953:32:4;;;;;;-1:-1:-1;;;;;8953:32:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8945:41;;;;;;;;9051:5;;9039:10;9024:33;;;;;;;;;;8592:472;;;:::o;315:191:6:-;359:8;;:::i;:::-;406:7;394:1;383:13;;;;;;;;;;;;;;;;;;;;;;;;379:17;;452:1;446:7;;497:2;490:1;492;490:4;;;;;;;;;;;;;;;;:9;-1:-1:-1;315:191:6;;-1:-1:-1;315:191:6:o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1808:7783:4:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1808:7783:4;;;;;;;;-1:-1:-1;;1808:7783:4;;;;;;;;;;" }, "gasEstimates": { "creation": { - "codeDepositCost": "1235400", - "executionCost": "1283", - "totalCost": "1236683" + "codeDepositCost": "1184400", + "executionCost": "infinite", + "totalCost": "infinite" }, "external": { - "AUTHORIZE_PAYMENT_ROLE()": "726", "CANCEL_PAYMENT_ROLE()": "374", "CONFIRM_PAYMENT_ROLE()": "506", - "ESCAPE_HATCH_CALLER_ROLE()": "748", + "ESCAPE_HATCH_CALLER_ROLE()": "726", "EVMSCRIPT_REGISTRY_APP()": "793", "EVMSCRIPT_REGISTRY_APP_ID()": "418", "SET_AUTOPAY_ROLE()": "396", "appId()": "590", "authorizePayment(bytes32,address,address,uint256)": "infinite", - "autoPay()": "932", + "autoPay()": "910", "canPerform(address,bytes32,uint256[])": "infinite", "cancelPayment(uint256)": "infinite", "confirmPayment(uint256)": "infinite", "escapeFunds(address,uint256)": "infinite", "escapeHatch(address)": "infinite", - "escapeHatchDestination()": "1139", + "escapeHatchDestination()": "1117", "getExecutor(bytes)": "infinite", "getInitializationBlock()": "722", - "initialize(address)": "992", - "initialize(address,address)": "61897", + "initialize(address)": "970", + "initialize(address,address)": "61926", "isTokenEscapable(address)": "937", - "kernel()": "1117", + "kernel()": "1095", "liquidPledging()": "721", "multiCancel(uint256[])": "infinite", "multiConfirm(uint256[])": "infinite", @@ -1759,7 +1767,6 @@ } }, "methodIdentifiers": { - "AUTHORIZE_PAYMENT_ROLE()": "a91c86a6", "CANCEL_PAYMENT_ROLE()": "4ad65a68", "CONFIRM_PAYMENT_ROLE()": "866836ff", "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", @@ -2879,6 +2886,17 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -3071,7 +3089,7 @@ }, "donate(uint64,uint64,address,uint256)": { "params": { - "idGiver": "The id of the Giver donating; if 0, a new id is created", + "idGiver": "The id of the Giver donating", "idReceiver": "The Admin receiving the donation; can be any Admin: the Giver themselves, another Giver, a Delegate or a Project" } }, @@ -3201,19 +3219,19 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052607f805460ff19169055341561001957600080fd5b615535806100286000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029", - "sourceMap": "1113:9918:5:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1113:9918:5;;;;;;;;;;;;;;" + "object": "6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029", + "sourceMap": "1113:10259:5:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1166:109:5;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:109:5;;-1:-1:-1;1809:30:0;1166:109:5;1809:5:0;;;;;;:30;:::i;:::-;1737:109;1166::5;1113:10259;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1113:10259:5:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba1461066257806357adafb61461067557806360b1e057146106c45780636293c702146106d75780636ba3cc87146106f65780636e802c6a1461072457806372116e92146107de578063796d56541461089a57806379f4542e146108b95780637f61fa93146108d857806380afdea81461098457806381ea440814610997578063892db057146109b65780638b3dd749146109d55780639398f5a2146109e85780639b3fdf4c14610a37578063a142d60814610a4a578063a1658fad14610a69578063af9f456314610acc578063b09927a114610aee578063b12b5f7614610b01578063c4d66de814610b17578063c8ae070f14610b36578063cc19ecf714610b4c578063ce17273c14610c07578063d4aae0c414610c56578063d639cd7314610c85578063db7c231414610ced578063e9c211e214610da8578063eba8ba0614610dca578063ef3766e414610f20578063f5b6123014610f6f578063f6b24b1c14610f82578063f92a79ff1461103d578063fbfa77cf1461108e575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a03602435811690604435166064356110a1565b005b341561029d57600080fd5b6102a56110fc565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516611105565b34156102e357600080fd5b6102eb6111a7565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb6111c9565b341561031b57600080fd5b6102906001604060020a03600435166024356111d4565b341561033d57600080fd5b6103576001604060020a0360043581169060243516611308565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b6102906004803560248101910135611436565b341561041757600080fd5b61029060043515156114ca565b341561042f57600080fd5b6104436001604060020a0360043516611530565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a03600435166024356116ad565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611894565b341561050e57600080fd5b610290600160a060020a03600435811690602435166118a9565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611914565b341561056757600080fd5b6102a5600160a060020a0360043516611aab565b341561058657600080fd5b61059a6001604060020a0360043516611b22565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d17915050565b341561066d57600080fd5b6102eb611f0d565b341561068057600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f1795505050505050565b34156106cf57600080fd5b6102eb611f82565b34156106e257600080fd5b610290600160a060020a0360043516611fb6565b341561070157600080fd5b6102906001604060020a0360043516600160a060020a036024351660443561202b565b341561072f57600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612037915050565b34156107e957600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061222d9050565b34156108a557600080fd5b6102906001604060020a0360043516612645565b34156108c457600080fd5b610290600160a060020a03600435166126af565b34156108e357600080fd5b61059a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250612727915050565b341561098f57600080fd5b6102eb61273f565b34156109a257600080fd5b6102eb600160a060020a0360043516612745565b34156109c157600080fd5b6102a5600160a060020a03600435166127c7565b34156109e057600080fd5b6102eb6127e6565b34156109f357600080fd5b61029060046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127ec95505050505050565b3415610a4257600080fd5b6102eb612857565b3415610a5557600080fd5b610290600160a060020a03600435166128d3565b3415610a7457600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2995505050505050565b3415610ad757600080fd5b6102906001604060020a0360043516602435612c67565b3415610af957600080fd5b6102eb612cd6565b3415610b0c57600080fd5b610290600435612d0a565b3415610b2257600080fd5b610290600160a060020a0360043516612d62565b3415610b4157600080fd5b610290600435612d72565b3415610b5757600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de1915050565b3415610c1257600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed595505050505050565b3415610c6157600080fd5b610c69612f0c565b604051600160a060020a03909116815260200160405180910390f35b3415610c9057600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1b915050565b3415610cf857600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f90915050565b3415610db357600080fd5b6102906001604060020a0360043516602435613084565b3415610dd557600080fd5b610de96001604060020a03600435166131ac565b60405180896002811115610df957fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610e7a578082015183820152602001610e62565b50505050905090810190601f168015610ea75780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610edd578082015183820152602001610ec5565b50505050905090810190601f168015610f0a5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f2b57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337b95505050505050565b3415610f7a57600080fd5b610c696133e6565b3415610f8d57600080fd5b610290600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f5915050565b341561104857600080fd5b610c6960046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134e995505050505050565b341561109957600080fd5b610c696135c5565b6000600160a060020a03841615156110b857600080fd5b6110e7846020604051908101604052806000815250602060405190810160405260008082526203f48090612037565b90506110f581868585611914565b5050505050565b607f5460ff1681565b600080611111836135d9565b90506000815460ff16600281111561112557fe5b141561113457600091506111a1565b6002815460ff16600281111561114657fe5b1461114d57fe5b6001810154604060020a900460ff161561116a57600191506111a1565b60018101546001604060020a0316151561118757600091506111a1565b600181015461119e906001604060020a0316611105565b91505b50919050565b6040516000805160206154ca8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a0390811661010090920416146111f957600080fd5b6112028461361f565b91506001600383015460a060020a900460ff16600281111561122057fe5b1461122a57600080fd5b60028201546001830180546112f5926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112bd57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161127a5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613650565b9050611302848285613972565b50505050565b600080611313615186565b60008061131f8761361f565b915081600101600187036001604060020a031681548110151561133e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450611372856135d9565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114265780601f106113fb57610100808354040283529160200191611426565b820191906000526020600020905b81548152906001019060200180831161140957829003601f168201915b5050505050925050509250925092565b60006040516000805160206154ca833981519152815260130160405180910390206114813382600060405180591061146b5750595b9080825280602002602001820160405250612b29565b151561148c57600080fd5b600091505b60ff821683901015611302576114bf848460ff85168181106114af57fe5b9050602002013560001916612d72565b600190910190611491565b6040516000805160206154ca833981519152815260130160405180910390206115123382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561151d57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611544615198565b61154d8a61361f565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156115e557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115a25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561165b57fe5b600281111561166657fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116bb85611b22565b94506116c68561361f565b92506000600384015460a060020a900460ff1660028111156116e457fe5b146116ee57600080fd5b6002830154611705906001604060020a0316613a32565b60028301546001840180546117cd926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561179857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117555790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613650565b91506117da858386613972565b60028301546117f1906001604060020a03166135d9565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561187957600080fd5b6102c65a03f1151561188a57600080fd5b5050505050505050565b61189d84613a32565b61130284848484613a89565b600354156118b657600080fd5b6118bf81614124565b600160a060020a03821615156118d457600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611901607a826151e4565b50600161190f607b82615210565b505050565b600080806001604060020a03871681901161192e57600080fd5b6000841161193b57600080fd5b600160a060020a038516151561195057600080fd5b611959876135d9565b92506000835460ff16600281111561196d57fe5b1461197757600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119ed57600080fd5b6102c65a03f115156119fe57600080fd5b505050604051805190501515611a1357600080fd5b611a44876000604051805910611a265750595b908082528060200260200182016040525060008060008a6000613650565b9150611a4f8261361f565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611aa287838689613a89565b50505050505050565b607f54600090819060ff1680611ac85750600160a060020a038316155b15611ad657600191506111a1565b600160a060020a0383166000908152607e602052604090205460ff1615611b0057600191506111a1565b611b0983612745565b6000908152607d602052604090205460ff169392505050565b600080600080611b318561361f565b92506000600384015460a060020a900460ff166002811115611b4f57fe5b14611b5c57849350611d0f565b60028301546000604060020a9091046001604060020a0316118015611b9b57506002830154608060020a90046001604060020a0316611b9961417d565b115b15611cde576002830154600184018054611c67926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611bf05790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b6002840154909250611cbe90604060020a90046001604060020a03166000604051805910611c925750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050611ccf85828560000154613972565b809450611cdb8561361f565b92505b611ce785614181565b90506001604060020a0380821690861614611d0b57611d0b85828560000154613972565b8093505b505050919050565b6000611d2282611aab565b1515611d2d57600080fd5b50607a8054908160018101611d4283826151e4565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611dbf57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611eb092916020019061523c565b5060e082015181600301908051611ecb92916020019061523c565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611302576001604060020a03848481518110611f3957fe5b90602001906020020151169150604060020a848481518110611f5757fe5b90602001906020020151811515611f6a57fe5b049050611f7782826116ad565b600190920191611f1c565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020611ffe3382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561200957600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61190f833384846110a1565b600061204282611aab565b151561204d57600080fd5b50607a805490816001810161206283826151e4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120df57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121d092916020019061523c565b5060e0820151816003019080516121eb92916020019061523c565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223983611aab565b151561224457600080fd5b6001604060020a038516156124615761225c856135d9565b9050601461244e826101006040519081016040528154909190829060ff16600281111561228557fe5b600281111561229057fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561239e5780601f106123735761010080835404028352916020019161239e565b820191906000526020600020905b81548152906001019060200180831161238157829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124405780601f1061241557610100808354040283529160200191612440565b820191906000526020600020905b81548152906001019060200180831161242357829003601f168201915b505050505081525050614249565b6001604060020a03161061246157600080fd5b607a80549250826001810161247683826151e4565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124f457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154ea833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125e592916020019061523c565b5060e08201518160030190805161260092916020019061523c565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612650826135d9565b905061265b82613a32565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154ca833981519152815260130160405180910390206126f73382600060405180591061146b5750599080825280602002602001820160405250612b29565b151561270257600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006127363386868686612037565b95945050505050565b60015481565b600061274f615186565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106127935780518252601f199092019160209182019101612774565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611302576001604060020a0384848151811061280e57fe5b90602001906020020151169150604060020a84848151811061282c57fe5b9060200190602002015181151561283f57fe5b04905061284c82826111d4565b6001909201916127f1565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020612910846142bd565b61291b338383612b29565b151561292657600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294c57600080fd5b600160a060020a03851615156129de57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16110f5565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3857600080fd5b6102c65a03f11515612a4957600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab857600080fd5b6102c65a03f11515612ac957600080fd5b505050604051805190501515612ade57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b33615186565b60008084511115612b4c57835160200290508391508082525b600054600160a060020a03161580612c5d575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf3578082015183820152602001612bdb565b50505050905090810190601f168015612c205780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c4157600080fd5b6102c65a03f11515612c5257600080fd5b505050604051805190505b9695505050505050565b600080612c7384611b22565b9350612c7e8461361f565b600281015490925060c060020a90046001604060020a03161515612ca157600080fd5b6002820154612cb8906001604060020a0316613a32565b60028201546112f59060c060020a90046001604060020a0316614181565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154ca83398151915281526013016040518091039020612d32826142dd565b612d3d338383612b29565b1515612d4857600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154ca83398151915281526013016040518091039020612dba3382600060405180591061146b5750599080825280602002602001820160405250612b29565b1515612dc557600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612dec866135d9565b805490915033600160a060020a039081166101009092041614612e0e57600080fd5b6001815460ff166002811115612e2057fe5b14612e2a57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e5d92916020019061523c565b5060038101838051612e7392916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0857612eff828281518110612ef057fe5b90602001906020020151611b22565b50600101612ed8565b5050565b600054600160a060020a031681565b600080805b8451831015612f88576001604060020a03858481518110612f3d57fe5b90602001906020020151169150604060020a858481518110612f5b57fe5b90602001906020020151811515612f6e57fe5b049050612f7d86838387611894565b600190920191612f20565b505050505050565b6000612f9b866135d9565b805490915033600160a060020a039081166101009092041614612fbd57600080fd5b6000815460ff166002811115612fcf57fe5b14612fd957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300c92916020019061523c565b506003810183805161302292916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130a957600080fd5b6130b28461361f565b91506001600383015460a060020a900460ff1660028111156130d057fe5b146130da57600080fd5b60028201546001830180546131a1926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561316d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312a5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b90506112f581611b22565b6000806131b7615186565b6131bf615186565b60008060008060006131d08a6135d9565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132855780601f1061325a57610100808354040283529160200191613285565b820191906000526020600020905b81548152906001019060200180831161326857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133245780601f106132f957610100808354040283529160200191613324565b820191906000526020600020905b81548152906001019060200180831161330757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611302576001604060020a0384848151811061339d57fe5b90602001906020020151169150604060020a8484815181106133bb57fe5b906020019060200201518115156133ce57fe5b0490506133db8282613084565b600190920191613380565b606454600160a060020a031681565b6000613400866135d9565b805490915033600160a060020a03908116610100909204161461342257600080fd5b6002815460ff16600281111561343457fe5b1461343e57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347192916020019061523c565b506003810183805161348792916020019061523c565b5080546001604060020a0380841660a860020a026000805160206154ea83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f36142ee565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355a578082015183820152602001613542565b50505050905090810190601f1680156135875780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a557600080fd5b6102c65a03f115156135b657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f357600080fd5b607a80546001604060020a03841690811061360a57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363957600080fd5b607b80546001604060020a03841690811061360a57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613689578082015183820152602001613671565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561375d57809250613965565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161379d8382615210565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561381e57fe5b9052919050815181556020820151816001019080516138419291602001906152b6565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395957fe5b02179055505050508092505b5050979650505050505050565b600080600061398460018787876143de565b9250846001604060020a0316866001604060020a031614156139a557612f88565b8215156139b157612f88565b6139ba8661361f565b91506139c58561361f565b8254909150839010156139d757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611aa260008787866143de565b6000613a3d826135d9565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a7e5750805433600160a060020a0390811661010090920416145b1515612f0857600080fd5b600080808080806001604060020a038716819011613aa657600080fd5b613aaf89611b22565b9850613aba8961361f565b9550613ac5876135d9565b94506000600387015460a060020a900460ff166002811115613ae357fe5b14613aed57600080fd5b60028601546001604060020a038b811691161415613df3576000855460ff166002811115613b1757fe5b1415613b2d57613b288989896143fb565b613dee565b6002855460ff166002811115613b3f57fe5b1415613b5057613b28898989614455565b6001855460ff166002811115613b6257fe5b1415613dec57613c8e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6002811115613c8557fe5b90525088614693565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc157506001604060020a038414155b15613dcd57600186015460001901841415613daf576002860154600187018054613d9d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d265790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613650565b9250613daa89848a613972565b613dc8565b613dc689896001848a6001018054905003036146f9565b505b613b28565b613ddf898988600101805490506146f9565b9850613b28898989614803565bfe5b614118565b613f198661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e8f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0557fe5b6002811115613f1057fe5b9052508b614693565b6001604060020a0390811692508214613dec576000855460ff166002811115613f3e57fe5b1415613f755760028601546001604060020a03888116911614613f5d57fe5b613f6f898988600101805490506146f9565b50614118565b6001855460ff166002811115613f8757fe5b14156140dc576140748661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0457600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc1575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7a57fe5b6001604060020a03908116915081141561409f57613ddf89896001858a6001018054905003036146f9565b818111156140be57613ddf89896001858a6001018054905003036146f9565b818111613dee57613f6f89896001848a6001018054905003036146f9565b6002855460ff1660028111156140ee57fe5b1415613dec5761410b89896001858a6001018054905003036146f9565b9850613dee898989614933565b50505050505050505050565b6003541561413157600080fd5b614139614c46565b600160a060020a038116151561414e57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b600080806001604060020a038416151561419e5760009250614242565b6141a78461361f565b60028101549092506141c1906001604060020a03166135d9565b90506000815460ff1660028111156141d557fe5b14156141e357839250614242565b6002815460ff1660028111156141f557fe5b146141fc57fe5b6002820154614213906001604060020a0316611105565b151561422157839250614242565b600282015461423f9060c060020a90046001604060020a0316614181565b92505b5050919050565b60008060028351600281111561425b57fe5b1461426257fe5b82606001516001604060020a0316151561427f57600191506111a1565b61428c83606001516135d9565b90506142b3816101006040519081016040528154909190829060ff16600281111561228557fe5b6001019392505050565b6142c5615186565b6142d782600160a060020a0316614c60565b92915050565b6142e5615186565b6142d782614c60565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143ba57600080fd5b6102c65a03f115156143cb57600080fd5b50505060405180519250829150505b5090565b806143ec8585808685614ca7565b90506127368584868685614ca7565b6000806144078561361f565b915061444883600060405180591061441c5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613650565b90506110f5858286613972565b60008060006144638661361f565b9250601461458c846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144c05790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b600281111561458457fe5b905250614e0f565b1061459657600080fd5b61459f84611105565b156145a957600080fd5b6002830154600184018054614646926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c3357600091825260209182902080546001604060020a03168452908202830192909160089101808411611bf05750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613650565b9150614686846000604051805910611c925750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613650565b9050612f88868287613972565b6000805b8360200151518110156146e757826001604060020a0316846020015182815181106146be57fe5b906020019060200201516001604060020a031614156146df578091506146f2565b600101614697565b6001604060020a0391505b5092915050565b600080614704615186565b600061470f8761361f565b60018101549093508590036040518059106147275750595b90808252806020026020018201604052509150600090505b60018301548590038110156147b2576001830180548290811061475e57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061479357fe5b6001604060020a0390921660209283029091019091015260010161473f565b600283015460038401546147ec916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613650565b93506147f9878588613972565b5050509392505050565b600061480d615186565b6000806148198761361f565b6001810154909450600a901061482e57600080fd5b600180850154016040518059106148425750595b90808252806020026020018201604052509250600091505b60018401548210156148cd576001840180548390811061487657fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148ab57fe5b6001604060020a0390921660209283029091019091015260019091019061485a565b600184015485908490815181106148e057fe5b6001604060020a03928316602091820290920101526002850154600386015461492692828116928792600092839260c060020a90041690600160a060020a031682613650565b9050611aa2878288613972565b60008061493f8561361f565b91506014614a2a836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b10614a3457600080fd5b614a3d83611105565b15614a4757600080fd5b6002820154600183018054614448926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614ada57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a975790505b505050505085614c058661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b7c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b395790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614bf257fe5b6002811115614bfd57fe5b905250614f25565b6001604060020a0316614c1661417d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613650565b60035415614c5357600080fd5b614c5b614fbd565b600355565b614c68615186565b6001604051805910614c775750595b908082528060200260200182016040525090508181600081518110614c9857fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614cce57610100614cd1565b60005b61ffff169250849350614ce38861361f565b60028101546003820154919350614d15918b916001604060020a0316908a908a908890600160a060020a03168a614fc1565b9350600090505b60018201546001604060020a0382161015614da857614d9e8983600101836001604060020a0316815481101515614d4f57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fc1565b9350600101614d1c565b60028201546000604060020a9091046001604060020a03161115614e035760028201546003830154614e00918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fc1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e2f57600091506111a1565b614e3c8360a0015161361f565b90506142b3816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561450357600091825260209182902080546001604060020a031684529082028301929091600891018084116144c0575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561457957fe5b6000806000614f3784604001516135d9565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561424257614f8184602001518281518110614f7257fe5b906020019060200201516135d9565b80549092506001604060020a0380851660a860020a909204161115614fb557815460a860020a90046001604060020a031692505b600101614f52565b4390565b80600080614fce896135d9565b600181015490915069010000000000000000009004600160a060020a031615801590614ffa5750600083115b156139655789156150d257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b15156150a157600080fd5b6102c65a03f115156150b257600080fd5b5050506040518051925050828211156150ca57600080fd5b819250613965565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561516557600080fd5b6102c65a03f1151561517657600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151b4615186565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161190f5760040281600402836000526020600020918201910161190f919061536a565b81548183558181151161190f5760040281600402836000526020600020918201910161190f91906153d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061527d57805160ff19168380011785556152aa565b828001600101855582156152aa579182015b828111156152aa57825182559160200191906001019061528f565b506143da929150615421565b8280548282559060005260206000209060030160049004810192821561535e5791602002820160005b8382111561532957835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152df565b801561535c5782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615329565b505b506143da92915061543b565b6111d191905b808211156143da5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153ba6002830182615460565b6153c8600383016000615460565b50600401615370565b6111d191905b808211156143da5760008082556153f160018301826154a4565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153d7565b6111d191905b808211156143da5760008155600101615427565b6111d191905b808211156143da57805467ffffffffffffffff19168155600101615441565b50805460018160011615610100020316600290046000825580601f106154865750612d6f565b601f016020900490600052602060002090810190612d6f9190615421565b508054600082556003016004900490600052602060002090810190612d6f91906154215600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820483944214faedec652d9c9a00ae84facaaf10125a71798c81714ba087e4cbaed0029", - "sourceMap": "1113:9918:5:-;;;;;;;;;-1:-1:-1;;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1339:359;;;;;;;;;;-1:-1:-1;;;;;1339:359:5;;;-1:-1:-1;;;;;1339:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;-1:-1:-1;;;;;11553:482:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;5348:455:5;;;;;;;;;;-1:-1:-1;;;;;5348:455:5;;;;;;;2790:397:7;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226:9;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;1903:611:12;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687:5;;;;;;;;;;-1:-1:-1;;;;;4415:687:5;;;;;;;3857:235;;;;;;;;;;-1:-1:-1;;;;;3857:235:5;;;;;;;;;;;;;;;;;;2143:319:7;;;;;;;;;;-1:-1:-1;;;;;2143:319:7;;;;;;;;;;2273:927:5;;;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;2126:450:9;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4196:1304:7;;;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;;;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;-1:-1:-1;;;;;4897:582:11;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;9903:103;;;;;;;;;;;;9383:287:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9383:287:5;;-1:-1:-1;9383:287:5;;-1:-1:-1;;;;;;9383:287:5;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;1167:166:5;;;;;;;;;;-1:-1:-1;;;;;1167:166:5;;;-1:-1:-1;;;;;1167:166:5;;;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;-1:-1:-1;;;;;2463:606:11;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;-1:-1:-1;;;;;7535:894:11;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;6799:220:5;;;;;;;;;;-1:-1:-1;;;;;6799:220:5;;;;;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;-1:-1:-1;;;;;2051:311:11;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;269:107:27;;;;;;;;;;;;9894:299:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9894:299:5;;-1:-1:-1;9894:299:5;;-1:-1:-1;;;;;;9894:299:5;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;7320:352:5;;;;;;;;;;-1:-1:-1;;;;;7320:352:5;;;;;;;1330:88:0;;;;;;;;;;;;1670:174:9;;;;;;;;;;;;;;1635:162:7;;;;;;;;;;-1:-1:-1;;;;;1635:162:7;;;;;1284:148:9;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;-1:-1:-1;;;;;6233:531:11;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;10865:164:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10865:164:5;;-1:-1:-1;10865:164:5;;-1:-1:-1;;;;;;10865:164:5;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;8680:380:5;;;;;;;;;;;;;-1:-1:-1;;;;;8680:380:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8680:380:5;;-1:-1:-1;;;8680:380:5;;-1:-1:-1;;;;;8680:380:5;;-1:-1:-1;8680:380:5;;-1:-1:-1;;8680:380:5;3709:511:11;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;-1:-1:-1;;;;;3709:511:11;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;6066:581:5;;;;;;;;;;-1:-1:-1;;;;;6066:581:5;;;;;;;10774:572:11;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10415:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10415:297:5;;-1:-1:-1;10415:297:5;;-1:-1:-1;;;;;;10415:297:5;1536:37:0;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;-1:-1:-1;;;;;9133:520:11;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;1339:359:5;1558:14;-1:-1:-1;;;;;1472:17:5;;;;1464:26;;;;;;1575:64;1584:12;1575:64;;;;;;;;;;;;;;;;;;;;;;;;;1606:6;;1575:8;:64::i;:::-;1558:81;;1649:42;1656:7;1665:10;1677:5;1684:6;1649;:42::i;:::-;1339:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;-1:-1:-1;;;11857:10:11;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;-1:-1:-1;;;;;11918:15:11;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;-1:-1:-1;;;;;12012:15:11;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;;:::o;5348:455:5:-;1556:5:7;;5429:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;5448:21:5;5460:8;5448:11;:21::i;:::-;5429:40;-1:-1:-1;5505:18:5;5488:13;;;;-1:-1:-1;;;5488:13:5;;;;:35;;;;;;;;;5480:44;;;;;;5589:7;;;;;5610:17;;5556:187;;;;-1:-1:-1;;;;;5589:7:5;;5610:17;5556:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5556:187:5;-1:-1:-1;;;;;5556:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5671:11:5;;;;;5696:7;;;;5641:1;;-1:-1:-1;5641:1:5;;-1:-1:-1;;;5671:11:5;;;-1:-1:-1;;;;;5671:11:5;;-1:-1:-1;;;;;5696:7:5;;;;5556:19;:187::i;:::-;5535:208;;5754:42;5766:8;5776:11;5789:6;5754:11;:42::i;:::-;5348:455;;;;:::o;2790:397:7:-;2883:17;2910:12;2932:11;;:::i;:::-;2960:16;3067:28;2979:21;2991:8;2979:11;:21::i;:::-;2960:40;;3023:1;:17;;3055:1;3041:11;:15;-1:-1:-1;;;;;3023:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3023:34:7;3010:47;;3098:22;3109:10;3098;:22::i;:::-;3067:53;;3137:8;:13;;;;;;;;;;-1:-1:-1;;;;;3137:13:7;3130:20;;3167:8;:13;;3160:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:397;;;;;;;:::o;1438:226:9:-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;1994:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;1903:611:12:-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;4415:687:5:-;4551:16;4691:18;4965:25;4491;4507:8;4491:15;:25::i;:::-;4480:36;;4570:21;4582:8;4570:11;:21::i;:::-;4551:40;-1:-1:-1;4626:19:5;4609:13;;;;-1:-1:-1;;;4609:13:5;;;;:36;;;;;;;;;4601:45;;;;;;4672:7;;;;4656:24;;-1:-1:-1;;;;;4672:7:5;4656:15;:24::i;:::-;4745:7;;;;;4766:17;;4712:189;;;;-1:-1:-1;;;;;4745:7:5;;4766:17;4712:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4712:189:5;-1:-1:-1;;;;;4712:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4827:11:5;;;;4852:7;;;;4797:1;;-1:-1:-1;4797:1:5;;-1:-1:-1;;;4827:11:5;;-1:-1:-1;;;;;4827:11:5;;-1:-1:-1;;;;;4852:7:5;;4712:19;:189::i;:::-;4691:210;;4912:42;4924:8;4934:11;4947:6;4912:11;:42::i;:::-;5004:7;;;;4993:19;;-1:-1:-1;;;;;5004:7:5;4993:10;:19::i;:::-;5022:5;;5067:10;;5079:7;;;;4965:47;;-1:-1:-1;;;;;;5022:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5045:20:5;;;5067:10;;;;5079:7;5088:6;5022:73;;-1:-1:-1;;;5022:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5022:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687;;;;;:::o;3857:235::-;4001:25;4017:8;4001:15;:25::i;:::-;4036:49;4046:8;4056;4066:6;4074:10;4036:9;:49::i;2143:319:7:-;140:19:27;;:24;132:33;;;;;;2238:41:7;2255:23;2238:16;:41::i;:::-;-1:-1:-1;;;;;2297:13:7;;;;2289:22;;;;;;2322:5;:24;;-1:-1:-1;;;;;;2322:24:7;;-1:-1:-1;;;;;2322:24:7;;;;;;-1:-1:-1;2357:17:7;:6;-1:-1:-1;2357:17:7;:::i;:::-;-1:-1:-1;2427:1:7;2410:18;:7;2427:1;2410:18;:::i;:::-;;2143:319;;:::o;2273:927:5:-;2537:26;;;-1:-1:-1;;;;;2389:11:5;;;;;2381:20;;;;;;2493:1;2484:10;;2476:19;;;;;;-1:-1:-1;;;;;2513:12:5;;;;2505:21;;;;;;2566:19;2577:7;2566:10;:19::i;:::-;2537:48;-1:-1:-1;2623:21:5;2603:16;;;;:41;;;;;;;;;2595:50;;;;;;2710:5;;-1:-1:-1;;;;;2664:25:5;;;;;;2690:10;;2710:5;;;;2718:6;2664:61;;;;;;;;-1:-1:-1;;;2664:61:5;;;;;;-1:-1:-1;;;;;2664:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2656:70;;;;;;;;2792:219;2825:7;2859:1;2846:15;;;;;;;;;;;;;;;;;;;;;;;;2918:1;2933;2948;2963:5;2982:19;2792;:219::i;:::-;2774:237;;3043:21;3055:8;3043:11;:21::i;:::-;3074:20;;;;;;3022:42;-1:-1:-1;;;;;;3105:29:5;;3074:10;3105:29;3088:6;3105:29;;;;;;;;;;;;;;3145:48;3155:7;3164:8;3174:6;3182:10;3145:9;:48::i;:::-;2273:927;;;;;;;:::o;2126:450:9:-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4196:1304:7:-;4253:6;4271:16;4669;4924:15;4290:21;4302:8;4290:11;:21::i;:::-;4271:40;-1:-1:-1;4457:19:7;4440:13;;;;-1:-1:-1;;;4440:13:7;;;;:36;;;;;;;;;4436:82;;4499:8;4492:15;;;;4436:82;4599:17;;;;4619:1;-1:-1:-1;;;4599:17:7;;;-1:-1:-1;;;;;4599:17:7;:21;4598:55;;;;-1:-1:-1;4640:12:7;;;;-1:-1:-1;;;4640:12:7;;-1:-1:-1;;;;;4640:12:7;4627:10;:8;:10::i;:::-;:25;4598:55;4594:714;;;4725:7;;;;;4750:17;;4688:222;;;;-1:-1:-1;;;;;4725:7:7;;4750:17;4688:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4688:222:7;-1:-1:-1;;;;;4688:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4823:11:7;;;;4852:7;;;;4785:1;;-1:-1:-1;4785:1:7;;-1:-1:-1;;;4823:11:7;;-1:-1:-1;;;;;4823:11:7;;-1:-1:-1;;;;;4852:7:7;4785:1;4688:19;:222::i;:::-;4979:17;;;;4669:241;;-1:-1:-1;4942:228:7;;-1:-1:-1;;;4979:17:7;;-1:-1:-1;;;;;4979:17:7;5027:1;5014:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5112:7:7;;;;5047:1;;;;5085:9;;-1:-1:-1;;;;;5112:7:7;5047:1;4942:19;:228::i;:::-;4924:246;;5184:41;5196:8;5206;5216:1;:8;;;5184:11;:41::i;:::-;5250:8;5239:19;;5276:21;5288:8;5276:11;:21::i;:::-;5272:25;;4594:714;5329:37;5357:8;5329:27;:37::i;:::-;5318:48;-1:-1:-1;;;;;;5380:20:7;;;;;;;5376:92;;5416:41;5428:8;5438;5448:1;:8;;;5416:11;:41::i;:::-;5485:8;5478:15;;4196:1304;;;;;;;:::o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;-1:-1:-1;;;;;5207:219:11;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;-1:-1:-1;;;;;5447:25:11;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;:::o;9383:287:5:-;9447:6;;;9442:222;9463:14;:21;9459:1;:25;9442:222;;;-1:-1:-1;;;;;9532:14:5;9547:1;9532:14;:17;;;;;;;;;;;;;;;:27;9506:55;;-1:-1:-1;;;9589:14:5;9604:1;9589:17;;;;;;;;;;;;;;;;:23;;;;;;;;9575:37;;9627:26;9636:8;9646:6;9627:8;:26::i;:::-;9486:3;;;;;9442:222;;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;1167:166:5:-;1270:56;1288:10;1300;1312:5;1319:6;1270:17;:56::i;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;-1:-1:-1;;;;;2812:210:11;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;-1:-1:-1;;;;;3043:19:11;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;-1:-1:-1;;;;;7821:18:11;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8013:42:11;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;-1:-1:-1;;;;;8399:23:11;;;;;;;;;;;7535:894;;;;;;;;;:::o;6799:220:5:-;6857:27;6887:21;6898:9;6887:10;:21::i;:::-;6857:51;;6918:26;6934:9;6918:15;:26::i;:::-;6973:4;6954:16;;:23;;-1:-1:-1;;6954:23:5;-1:-1:-1;;;6954:23:5;;;-1:-1:-1;;;;;6988:24:5;;;;;;;;;;;;6799:220;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;9894:299:5:-;9964:6;;;9959:228;9980:14;:21;9976:1;:25;9959:228;;;-1:-1:-1;;;;;10049:14:5;10064:1;10049:14;:17;;;;;;;;;;;;;;;:27;10023:55;;-1:-1:-1;;;10106:14:5;10121:1;10106:17;;;;;;;;;;;;;;;;:23;;;;;;;;10092:37;;10144:32;10159:8;10169:6;10144:14;:32::i;:::-;10003:3;;;;;9959:228;;158:103:31;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;2416:624;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;7320:352:5:-;7436:16;7556;7400:25;7416:8;7400:15;:25::i;:::-;7389:36;;7455:21;7467:8;7455:11;:21::i;:::-;7494:11;;;;;;-1:-1:-1;;;;7494:11:5;;-1:-1:-1;;;;;7494:11:5;:16;;7486:25;;;;;;7537:7;;;;7521:24;;-1:-1:-1;;;;;7537:7:5;7521:15;:24::i;:::-;7603:11;;;;7575:40;;-1:-1:-1;;;7603:11:5;;-1:-1:-1;;;;;7603:11:5;7575:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1635:162:7:-;140:19:27;;:24;132:33;;;;;1714:14:7;1635:162;:::o;1284:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;-1:-1:-1;;;;;6684:35:11;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;10865:164:5:-;10931:6;10926:97;10947:7;:14;10943:1;:18;10926:97;;;10983:29;11000:7;11008:1;11000:10;;;;;;;;;;;;;;;;10983:15;:29::i;:::-;-1:-1:-1;10963:3:5;;10926:97;;;10865:164;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;8680:380:5:-;8815:6;;;8810:244;8831:14;:21;8827:1;:25;8810:244;;;-1:-1:-1;;;;;8900:14:5;8915:1;8900:14;:17;;;;;;;;;;;;;;;:27;8874:55;;-1:-1:-1;;;8957:14:5;8972:1;8957:17;;;;;;;;;;;;;;;;:23;;;;;;;;8943:37;;8995:48;9004:8;9014;9024:6;9032:10;8995:8;:48::i;:::-;8854:3;;;;;8810:244;;;8680:380;;;;;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;-1:-1:-1;;;;;4149:32:11;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;6066:581:5:-;1556:5:7;;6146:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;6165:21:5;6177:8;6165:11;:21::i;:::-;6146:40;-1:-1:-1;6222:18:5;6205:13;;;;-1:-1:-1;;;6205:13:5;;;;:35;;;;;;;;;6197:44;;;;;;6377:7;;;;;6398:17;;6344:190;;;;-1:-1:-1;;;;;6377:7:5;;6398:17;6344:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6344:190:5;-1:-1:-1;;;;;6344:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6459:11:5;;;;6484:7;;;;6429:1;;-1:-1:-1;6429:1:5;;-1:-1:-1;;;6459:11:5;;-1:-1:-1;;;;;6459:11:5;;-1:-1:-1;;;;;6484:7:5;6429:1;6344:19;:190::i;:::-;6323:211;;6559:28;6575:11;6559:15;:28::i;10774:572:11:-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;-1:-1:-1;;;;;11219:12:11;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;;;;11293:10:11;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;10415:297:5:-;10484:6;;;10479:227;10500:14;:21;10496:1;:25;10479:227;;;-1:-1:-1;;;;;10569:14:5;10584:1;10569:14;:17;;;;;;;;;;;;;;;:27;10543:55;;-1:-1:-1;;;10626:14:5;10641:1;10626:17;;;;;;;;;;;;;;;;:23;;;;;;;;10612:37;;10664:31;10678:8;10688:6;10664:13;:31::i;:::-;10523:3;;;;;10479:227;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9133:520:11:-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;-1:-1:-1;;;;;9576:34:11;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;-1:-1:-1;;;;;12371:23:11;;;12363:32;;;;;;12412:6;:15;;-1:-1:-1;;;;;12412:15:11;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;4554::12:-;4659:7;:14;4614:6;;-1:-1:-1;;;;;4648:25:12;;;4640:34;;;;;;4691:7;:17;;-1:-1:-1;;;;;4691:17:12;;;;;;;;3613:842;3857:6;3879:15;3994:9;3907:15;3924:5;3931:15;3948:10;3960:9;3971:5;3978;3897:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4006:20:12;;;;-1:-1:-1;4040:6:12;;4036:46;;;4069:2;4062:9;;;;4036:46;-1:-1:-1;4104:7:12;:14;;4129:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4129:25:12;-1:-1:-1;;;;;4129:25:12;;;;;4164:265;;4104:14;;:7;-1:-1:-1;4164:265:12;;;4104:7;4164:265;;:::i;:::-;;;;;;;;;;;;4190:229;;;;;;;;;4214:1;4190:229;;;;4233:15;4190:229;;;;4266:5;-1:-1:-1;;;;;4190:229:12;;;;;4289:15;-1:-1:-1;;;;;4190:229:12;;;;;4322:10;-1:-1:-1;;;;;4190:229:12;;;;;4350:9;-1:-1:-1;;;;;4190:229:12;;;;;4377:5;-1:-1:-1;;;;;4190:229:12;;;;;4400:5;4190:229;;;;;;;;;;4164:265;;-1:-1:-1;4164:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;4164:265:12;;;;;;;;;;;;;;;;;4446:2;4439:9;;3613:842;;;;;;;;;;;;:::o;17446:534:7:-;17524:11;17699:20;17749:18;17538:37;17551:4;17557;17563:2;17567:7;17538:12;:37::i;:::-;17524:51;;17597:2;-1:-1:-1;;;;;17589:10:7;:4;-1:-1:-1;;;;;17589:10:7;;17585:47;;;17615:7;;17585:47;17645:11;;17641:48;;;17672:7;;17641:48;17722:17;17734:4;17722:11;:17::i;:::-;17699:40;;17770:15;17782:2;17770:11;:15::i;:::-;17804:12;;17749:36;;-1:-1:-1;17804:22:7;;;;17796:31;;;;;;17837:22;;;;;;;17869:20;;;;;;-1:-1:-1;;;;;17900:26:7;;;;;;;17853:6;17900:26;;;;;;;;;;;;;;17936:37;17949:5;17956:4;17962:2;17966:6;17936:12;:37::i;5741:193::-;5810:21;5834:19;5845:7;5834:10;:19::i;:::-;5893:8;;;;5810:43;;-1:-1:-1;5871:10:7;-1:-1:-1;;;;;5871:31:7;;;5893:8;;;;;5871:31;;:55;;-1:-1:-1;5920:6:7;;5906:10;-1:-1:-1;;;;;5906:20:7;;;5920:6;;;;;5906:20;5871:55;5863:64;;;;;;;5940:5495;6192:16;;;;;;-1:-1:-1;;;;;6095:14:7;;;;;6087:23;;;;;;6156:25;6172:8;6156:15;:25::i;:::-;6145:36;;6211:21;6223:8;6211:11;:21::i;:::-;6192:40;;6273:22;6284:10;6273;:22::i;:::-;6242:53;-1:-1:-1;6331:19:7;6314:13;;;;-1:-1:-1;;;6314:13:7;;;;:36;;;;;;;;;6306:45;;;;;;6418:7;;;;-1:-1:-1;;;;;6418:19:7;;;:7;;:19;6414:2102;;;6480:21;6458:18;;;;:43;;;;;;;;;6454:2032;;;6521:55;6547:8;6557:6;6565:10;6521:25;:55::i;:::-;6454:2032;;;6623:23;6601:18;;;;:45;;;;;;;;;6597:1889;;;6666:57;6694:8;6704:6;6712:10;6666:27;:57::i;6597:1889::-;6770:24;6748:18;;;;:46;;;;;;;;;6744:1742;;;6835:30;6851:1;6835:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;-1:-1:-1;;6835:30:7;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6854:10:7;6835:15;:30::i;:::-;6887:17;;;;-1:-1:-1;;;;;6815:50:7;;;;-1:-1:-1;6907:1:7;-1:-1:-1;;;6887:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6912:24:7;;;6887:49;6883:1389;;;7251:1;7224:17;;:24;-1:-1:-1;;7224:28:7;7208:44;;7204:604;;;7347:7;;;;;7384:17;;7298:293;;;;-1:-1:-1;;;;;7347:7:7;;7384:17;7298:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7298:293:7;-1:-1:-1;;;;;7298:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7493:11:7;;;;7534:7;;;;7431:1;;-1:-1:-1;7431:1:7;;-1:-1:-1;;;7493:11:7;;-1:-1:-1;;;;;7493:11:7;;-1:-1:-1;;;;;7534:7:7;7431:1;7298:19;:293::i;:::-;7280:311;;7617:39;7629:8;7639;7649:6;7617:11;:39::i;:::-;7204:604;;;7711:74;7723:8;7733:6;7783:1;7768:12;7741:1;:17;;:24;;;;:39;:43;7711:11;:74::i;:::-;;7204:604;6883:1389;;;8037:149;8074:8;8108:6;8140:1;:17;;:24;;;;8037:11;:149::i;:::-;8026:160;;8208:45;8224:8;8234:6;8242:10;8208:15;:45::i;6744:1742::-;8458:13;;8499:7;;6414:2102;8583:28;8599:1;8583:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;-1:-1:-1;;8583:28:7;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8602:8:7;8583:15;:28::i;:::-;-1:-1:-1;;;;;8565:46:7;;;;-1:-1:-1;8625:22:7;;8621:2735;;8739:21;8717:18;;;;:43;;;;;;;;;8713:274;;;8853:7;;;;-1:-1:-1;;;;;8853:21:7;;;:7;;:21;8846:29;;;;8893:55;8905:8;8915:6;8923:1;:17;;:24;;;;8893:11;:55::i;:::-;;8966:7;;8713:274;9079:24;9057:18;;;;:46;;;;;;;;;9053:1785;;;9143:30;9159:1;9143:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;-1:-1:-1;;;9143:30:7;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9123:50:7;;;;-1:-1:-1;9246:24:7;;9242:1558;;;9305:166;9342:8;9376:6;9448:1;9435:10;9408:1;:17;;:24;;;;:37;:41;9305:11;:166::i;9242:1558::-;9823:10;9808:12;:25;9804:996;;;9868:166;9905:8;9939:6;10011:1;9998:10;9971:1;:17;;:24;;;;:37;:41;9868:11;:166::i;9804:996::-;10361:26;;;10357:443;;10613:168;10650:8;10684:6;10758:1;10743:12;10716:1;:17;;:24;;;;:39;:43;10613:11;:168::i;9053:1785::-;11034:23;11012:18;;;;:45;;;;;;;;;11008:338;;;11088:150;11121:8;11151:6;11219:1;11206:10;11179:1;:17;;:24;;;;:37;:41;11088:11;:150::i;:::-;11077:161;;11256:51;11278:8;11288:6;11296:10;11256:21;:51::i;11365:13::-;5940:5495;;;;;;;;;;:::o;2001:207:0:-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;25364:76:7:-;25430:3;25364:76;:::o;18963:583::-;19053:6;;;-1:-1:-1;;;;;19079:13:7;;;19075:52;;;19115:1;19108:8;;;;19075:52;19156:21;19168:8;19156:11;:21::i;:::-;19226:7;;;;19137:40;;-1:-1:-1;19215:19:7;;-1:-1:-1;;;;;19226:7:7;19215:10;:19::i;:::-;19187:47;-1:-1:-1;19276:21:7;19257:15;;;;:40;;;;;;;;;19253:86;;;19320:8;19313:15;;;;19253:86;19375:23;19356:15;;;;:42;;;;;;;;;19349:50;;;;19432:7;;;;19414:26;;-1:-1:-1;;;;;19432:7:7;19414:17;:26::i;:::-;19413:27;19409:73;;;19463:8;19456:15;;;;19409:73;19527:11;;;;19499:40;;-1:-1:-1;;;19527:11:7;;-1:-1:-1;;;;;19527:11:7;19499:27;:40::i;:::-;19492:47;;18963:583;;;;;;:::o;12650:311:11:-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;-1:-1:-1;;;;;12787:20:11;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;24597:649:7:-;24788:6;24873:145;24905:6;24925:10;;24973:8;24788:6;24873:18;:145::i;:::-;24857:161;;25096:143;25128:6;25148:8;25170:10;25194:8;25216:13;25096:18;:143::i;13269:444::-;13407:16;13458:15;13426:21;13438:8;13426:11;:21::i;:::-;13407:40;;13476:181;13509:10;13546:1;13533:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13607:7:7;;;;13562:1;;;;;;-1:-1:-1;;;;;13607:7:7;13562:1;13476:19;:181::i;:::-;13458:199;;13667:39;13679:8;13689;13699:6;13667:11;:39::i;11870:989::-;12010:16;12291;12510:15;12029:21;12041:8;12029:11;:21::i;:::-;12010:40;;1143:2:11;12187:18:7;12203:1;12187:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;-1:-1:-1;;12187:18:7;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12187:15:7;:18::i;:::-;:43;12179:52;;;;;;12250:29;12268:10;12250:17;:29::i;:::-;12249:30;12241:39;;;;;;12343:7;;;;;12364:17;;12310:190;;;;-1:-1:-1;;;;;12343:7:7;;12364:17;12310:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12310:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12425:11:7;;;;12450:7;;;;12395:1;;-1:-1:-1;12395:1:7;;-1:-1:-1;;;;12425:11:7;;;-1:-1:-1;;;;;12425:11:7;;-1:-1:-1;;;;;12450:7:7;12395:1;12310:19;:190::i;:::-;12291:209;;12528:275;12561:10;12639:1;12626:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12753:7:7;;;;12700:1;;;;12730:9;;-1:-1:-1;;;;;12753:7:7;12700:1;12528:19;:275::i;:::-;12510:293;;12813:39;12825:8;12835;12845:6;12813:11;:39::i;5220:290:12:-;5296:6;;5314:165;5335:1;:17;;;:24;5331:1;:28;5314:165;;;5408:10;-1:-1:-1;;;;;5384:34:12;:1;:17;;;5402:1;5384:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5384:34:12;;5380:89;;;5452:1;5438:16;;;;5380:89;5361:3;;5314:165;;;-1:-1:-1;;;;;5488:15:12;;5220:290;;;;;;:::o;15365:692:7:-;15472:15;15503:16;15553:34;;:::i;:::-;15670:6;15522:21;15534:8;15522:11;:21::i;:::-;15616:17;;;:24;15503:40;;-1:-1:-1;15616:28:7;;;15590:64;;;;;;;;;;;;;;;;;;;;;;;;15553:101;;15679:1;15670:10;;15665:125;15686:17;;;:24;:28;;;15682:32;;15665:125;;;15759:17;;;:20;;15777:1;;15759:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15759:20:7;15735:18;15754:1;15735:21;;;;;;;;-1:-1:-1;;;;;15735:44:7;;;:21;;;;;;;;;;:44;15716:3;;15665:125;;;15843:7;;;;15951;;;;15810:191;;-1:-1:-1;;;;;15843:7:7;;;;15864:18;;15843:7;;;;-1:-1:-1;;;15926:11:7;;;;;-1:-1:-1;;;;;15951:7:7;15843;15810:19;:191::i;:::-;15799:202;;16011:39;16023:8;16033;16043:6;16011:11;:39::i;:::-;15365:692;;;;;;;;:::o;14071:871::-;14199:16;14309:34;;:::i;:::-;14425:6;14677:15;14218:21;14230:8;14218:11;:21::i;:::-;14258:17;;;:24;14199:40;;-1:-1:-1;1085:2:12;14258:40:7;;14250:49;;;;;;14372:17;;;;:24;:28;14346:64;;;;;;;;;;;;;;;;;;;;;;;;14309:101;;14434:1;14425:10;;14420:121;14441:17;;;:24;14437:28;;14420:121;;;14510:17;;;:20;;14528:1;;14510:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14510:20:7;14486:18;14505:1;14486:21;;;;;;;;-1:-1:-1;;;;;14486:44:7;;;:21;;;;;;;;;;:44;14467:3;;;;;14420:121;;;14628:17;;;:24;14656:10;;14609:18;;;:44;;;;;;;-1:-1:-1;;;;;14609:57:7;;;:44;;;;;;;;:57;14728:7;;;;14836;;;;14695:191;;14728:7;;;;14749:18;;14728:7;;;;-1:-1:-1;;;14811:11:7;;;;-1:-1:-1;;;;;14836:7:7;14728;14695:19;:191::i;:::-;14677:209;;14896:39;14908:8;14918;14928:6;14896:11;:39::i;16483:607::-;16617:16;16780:15;16636:21;16648:8;16636:11;:21::i;:::-;16617:40;;1143:2:11;16676:18:7;16692:1;16676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;-1:-1:-1;;;16676:18:7;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;:43;16668:52;;;;;;16739:29;16757:10;16739:17;:29::i;:::-;16738:30;16730:39;;;;;;16831:7;;;;;16852:17;;16798:236;;;;-1:-1:-1;;;;;16831:7:7;;16852:17;16798:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16798:236:7;-1:-1:-1;;;;;16798:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16883:10;16927:17;16942:1;16927:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;-1:-1:-1;;16927:17:7;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16927:14:7;:17::i;:::-;-1:-1:-1;;;;;16914:30:7;:10;:8;:10::i;:::-;16959:11;;;;16984:7;;;;16914:30;;;;;-1:-1:-1;;;16959:11:7;;-1:-1:-1;;;;;16959:11:7;;-1:-1:-1;;;;;16984:7:7;;16798:19;:236::i;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;22510:1549:7:-;22681:18;22818:13;22908:16;23260:8;22846:10;-1:-1:-1;;;;;22834:22:7;:8;-1:-1:-1;;;;;22834:22:7;;:32;;22863:3;22834:32;;;22859:1;22834:32;22818:48;;;;22892:6;22876:22;;22927:21;22939:8;22927:11;:21::i;:::-;23067:7;;;;23154;;;;22908:40;;-1:-1:-1;23022:176:7;;23047:6;;-1:-1:-1;;;;;23067:7:7;;23088:10;;23112:8;;23134:6;;-1:-1:-1;;;;;23154:7:7;23175:13;23022:11;:176::i;:::-;23006:192;;23271:1;23260:12;;23255:324;23278:17;;;:24;-1:-1:-1;;;;;23274:28:7;;;23255:324;;;23339:229;23368:6;23392:1;:17;;23410:1;-1:-1:-1;;;;;23392:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23392:20:7;23430:10;23458:8;23493:1;23484:6;:10;23497:1;23484:14;23516:1;:7;;;;;;;;;;-1:-1:-1;;;;;23516:7:7;23541:13;23339:11;:229::i;:::-;23323:245;-1:-1:-1;23304:3:7;;23255:324;;;23765:17;;;;23785:1;-1:-1:-1;;;23765:17:7;;;-1:-1:-1;;;;;23765:17:7;:21;23761:292;;;23871:17;;;;23990:7;;;;23818:224;;23847:6;;-1:-1:-1;;;23871:17:7;;;-1:-1:-1;;;;;23871:17:7;;23906:10;;23934:8;;23969:3;23960:12;;;-1:-1:-1;;;;;23990:7:7;24015:13;23818:11;:224::i;:::-;23802:240;;23761:292;22510:1549;;;;;;;;;;:::o;5755:249:12:-;5812:4;5892:19;5832:1;:11;;;-1:-1:-1;;;;;5832:16:12;;5828:55;;;5871:1;5864:8;;;;5828:55;5914:24;5926:1;:11;;;5914;:24::i;:::-;5892:46;;5955:21;5971:4;5955:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;-1:-1:-1;;;5955:21:12;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;18233:513:7;18289:17;18318:21;18449:6;18342:19;18353:1;:7;;;18342:10;:19::i;:::-;18384:12;;-1:-1:-1;;;18384:12:7;;-1:-1:-1;;;;;18384:12:7;;-1:-1:-1;18384:12:7;-1:-1:-1;18384:12:7;;-1:-1:-1;18444:296:7;18465:1;:17;;;:24;18461:1;:28;18444:296;;;18514:32;18525:1;:17;;;18543:1;18525:20;;;;;;;;;;;;;;;;18514:10;:32::i;:::-;18645:12;;18510:36;;-1:-1:-1;;;;;;18645:25:7;;;-1:-1:-1;;;18645:12:7;;;;:25;18641:89;;;18703:12;;-1:-1:-1;;;18703:12:7;;-1:-1:-1;;;;;18703:12:7;;-1:-1:-1;18641:89:7;18491:3;;18444:296;;767:94:27;842:12;767:94;:::o;20517:1287:7:-;20802:6;20727:18;;20846:19;20857:7;20846:10;:19::i;:::-;20969:12;;;;;;-1:-1:-1;20969:12:7;;;-1:-1:-1;;;;;20969:12:7;20961:26;;;;:47;;;21007:1;20991:13;:17;20961:47;20957:841;;;21161:6;21157:631;;;21199:12;;;;;;;-1:-1:-1;;;;;21199:12:7;:27;21248:7;21277:10;21309:8;21339:7;21368:5;21395:6;21199:220;;;;;;;;-1:-1:-1;;;21199:220:7;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21445:26:7;;;;21437:35;;;;;;21506:9;21490:25;;21157:631;;;21554:12;;;;;;;-1:-1:-1;;;;;21554:12:7;:26;21602:7;21631:10;21663:8;21693:7;21722:5;21749:6;21554:219;;-1:-1:-1;;;21554:219:7;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20517:1287;;;;;;;;;;;:::o;1113:9918:5:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:9918:5;;;-1:-1:-1;1113:9918:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:9918:5;;;;;-1:-1:-1;;;;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:9918:5;;;-1:-1:-1;1113:9918:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1113:9918:5;;;;;;;;;;-1:-1:-1;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:9918:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + "object": "6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029", + "sourceMap": "1113:10259:5:-;;;;;;;;;-1:-1:-1;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:478:11;;;;;;;;;;-1:-1:-1;;;;;11568:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;2117:319:7;;;;;;;;;;-1:-1:-1;;;;;2117:319:7;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4902:584:11;;;-1:-1:-1;;;;;4902:584:11;;;;;9918:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2465:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2465:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2465:606:11;;-1:-1:-1;;;2465:606:11;;-1:-1:-1;;;;;2465:606:11;;;;;-1:-1:-1;;;;;2465:606:11;;-1:-1:-1;2465:606:11;;-1:-1:-1;;2465:606:11;7545:896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:896:11;;;;;-1:-1:-1;;;;;7545:896:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2051:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2051:313:11;;;-1:-1:-1;;;;;2051:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6240:534:11;;;;;;;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3711:514:11;;;;;;;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10787:574:11;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9145:523:11;;;;;;;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11568:478:11:-;11642:4;11662:21;11686;11697:9;11686:10;:21::i;:::-;11662:45;-1:-1:-1;11737:21:11;11722:11;;;;:36;;;;;;;;;11718:79;;;11781:5;11774:12;;;;11718:79;11829:23;11814:11;;;;:38;;;;;;;;;11807:46;;;;11868:10;;;;-1:-1:-1;;;11868:10:11;;;;11864:52;;;11901:4;11894:11;;;;11864:52;11929:15;;;;-1:-1:-1;;;;;11929:15:11;:20;11925:63;;;11972:5;11965:12;;;;11925:63;12023:15;;;;12005:34;;-1:-1:-1;;;;;12023:15:11;12005:17;:34::i;:::-;11998:41;;11568:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;2117:319:7:-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;:::-;;2117:319;;:::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4902:584:11:-;5053:17;5095:21;5109:6;5095:13;:21::i;:::-;5087:30;;;;;;;;-1:-1:-1;5164:6:11;:13;;;;5189:254;;;;5164:6;5189:254;;:::i;:::-;;;;;;;;;;;;5214:219;;;;;;;;;5243:24;5214:219;;;;5285:10;-1:-1:-1;;;;;5214:219:11;;;;;5313:10;-1:-1:-1;;;;;5214:219:11;;;;;5341:1;-1:-1:-1;;;;;5214:219:11;;;;;5360:5;5214:219;;;;;;5383:6;-1:-1:-1;;;;;5214:219:11;;;;;5407:4;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:3;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5214:219:11;;;;-1:-1:-1;5189:254:11;;;-1:-1:-1;5189:254:11;;-1:-1:-1;;5189:254:11;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;-1:-1:-1;;;;;;5189:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;;;;;;;;;;5189:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5468:10;-1:-1:-1;;;;;5454:25:11;;;;;;;;;;;4902:584;;;;;;;;:::o;9918:101::-;9995:6;:13;-1:-1:-1;;9995:17:11;9918:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;2465:606:11:-;2633:14;2671:21;2685:6;2671:13;:21::i;:::-;2663:30;;;;;;;;-1:-1:-1;2737:6:11;:13;;;;2789:245;;;;2737:6;2789:245;;:::i;:::-;;;;;;;;;;;;2814:210;;;;;;;;;2843:21;2814:210;;-1:-1:-1;;;;;2814:210:11;;;;;;;-1:-1:-1;;;;;2814:210:11;;;;;;-1:-1:-1;2814:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2789:245;;-1:-1:-1;2789:245:11;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;-1:-1:-1;;;;;;2789:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;;;;;;;;;;2789:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3056:7;-1:-1:-1;;;;;3045:19:11;;;;;;;;;;;2465:606;;;;;;;:::o;7545:896::-;7755:16;7867:21;7796;7810:6;7796:13;:21::i;:::-;7788:30;;;;;;;;-1:-1:-1;;;;;7833:18:11;;;7829:250;;7891:25;7902:13;7891:10;:25::i;:::-;7867:49;;1096:2;8025:19;8042:1;8025:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8025:42:11;;8017:51;;;;;;8108:6;:13;;;-1:-1:-1;8108:13:11;8133:267;;;;8108:6;8133:267;;:::i;:::-;;;;;;;;;;;;8158:232;;;;;;;;;8187:23;8158:232;;;;8228:12;-1:-1:-1;;;;;8158:232:11;;;;;8258:10;-1:-1:-1;;;;;8158:232:11;;;;;8286:13;-1:-1:-1;;;;;8158:232:11;;;;;8317:5;8158:232;;;;;;8340:6;-1:-1:-1;;;;;8158:232:11;;;;;8364:4;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:3;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8158:232:11;;;;-1:-1:-1;8133:267:11;;;-1:-1:-1;8133:267:11;;-1:-1:-1;;8133:267:11;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;-1:-1:-1;;;;;;8133:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;;;;;;;;;;8133:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8424:9;-1:-1:-1;;;;;8411:23:11;;;;;;;;;;;7545:896;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2051:313:11:-;2199:14;2236:121;2258:10;2282:4;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:3;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2317:10;2341:6;2236:8;:121::i;:::-;2229:128;2051:313;-1:-1:-1;;;;;;;2051:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6240:534:11:-;6423:28;6454:22;6465:10;6454;:22::i;:::-;6508:13;;6423:53;;-1:-1:-1;6494:10:11;-1:-1:-1;;;;;6494:27:11;;;6508:13;;;;;6494:27;6486:36;;;;;;6562:24;6540:18;;;;:46;;;;;;;;;6532:55;;;;;;6597:23;;-1:-1:-1;;;;;;6597:23:11;;-1:-1:-1;;;;;6597:23:11;;;;;;6630;:13;;;6646:7;;6630:23;:::i;:::-;-1:-1:-1;6663:21:11;:12;;;6678:6;;6663:21;:::i;:::-;-1:-1:-1;6694:35:11;;-1:-1:-1;;;;;6694:35:11;;;-1:-1:-1;;;6694:35:11;-1:-1:-1;;;;;;;;;;;6694:35:11;;;;;;;;;6740:27;;;;;;;;;;;;6240:534;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3711:514:11:-;3888:25;3916:19;3927:7;3916:10;:19::i;:::-;3967:10;;3888:47;;-1:-1:-1;3953:10:11;-1:-1:-1;;;;;3953:24:11;;;3967:10;;;;;3953:24;3945:33;;;;;;4015:21;3996:15;;;;:40;;;;;;;;;3988:49;;;;;;4066:20;;-1:-1:-1;;;;;;4066:20:11;;-1:-1:-1;;;;;4066:20:11;;;;;;4096;:10;;;4109:7;;4096:20;:::i;:::-;-1:-1:-1;4126:18:11;:9;;;4138:6;;4126:18;:::i;:::-;-1:-1:-1;4154:32:11;;-1:-1:-1;;;;;4154:32:11;;;-1:-1:-1;;;4154:32:11;-1:-1:-1;;;;;;;;;;;4154:32:11;;;;;;;;;4197:21;;;;;;;;;;;;3711:514;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10787:574:11:-;10859:25;10894:12;10916:11;;:::i;:::-;10937:10;;:::i;:::-;10957:17;10984:20;11014:13;11037:14;11068:21;11092:19;11103:7;11092:10;:19::i;:::-;11133:11;;11184:6;;;;11177:13;;11133:11;;;;-1:-1:-1;11133:11:11;11161:6;;;;-1:-1:-1;;;;;11161:6:11;;-1:-1:-1;11133:11:11;;-1:-1:-1;11184:6:11;11133:11;11177:13;;;;;;-1:-1:-1;;11177:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11206:1;:5;;11200:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11234:12:11;;11272:15;;;;;10787:574;;;;-1:-1:-1;10787:574:11;;11200:11;;-1:-1:-1;;;11234:12:11;;;-1:-1:-1;;;;;11234:12:11;;;;-1:-1:-1;11272:15:11;;;-1:-1:-1;;;;;;11308:10:11;;;;;-1:-1:-1;11345:8:11;;;-1:-1:-1;;;;;11345:8:11;;-1:-1:-1;10787:574:11;-1:-1:-1;;10787:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9145:523:11:-;9326:27;9356:21;9367:9;9356:10;:21::i;:::-;9410:12;;9326:51;;-1:-1:-1;9396:10:11;-1:-1:-1;;;;;9396:26:11;;;9410:12;;;;;9396:26;9388:35;;;;;;9462:23;9441:17;;;;:44;;;;;;;;;9433:53;;;;;;9497:22;;-1:-1:-1;;;;;;9497:22:11;;-1:-1:-1;;;;;9497:22:11;;;;;;9529;:12;;;9544:7;;9529:22;:::i;:::-;-1:-1:-1;9561:20:11;:11;;;9575:6;;9561:20;:::i;:::-;-1:-1:-1;9591:34:11;;-1:-1:-1;;;;;9591:34:11;;;-1:-1:-1;;;9591:34:11;-1:-1:-1;;;;;;;;;;;9591:34:11;;;;;;;;;9636:25;;;;;;;;;;;;9145:523;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12284:161:11:-;12392:6;:13;12343:11;;-1:-1:-1;;;;;12382:23:11;;;12374:32;;;;;;12423:6;:15;;-1:-1:-1;;;;;12423:15:11;;;;;;;;;;;;;;;;;;;12416:22;;12284:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;25384:76:7:-;25450:3;25384:76;:::o;18983:583::-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12661:316:11:-;12724:6;;12764:23;12749:1;:11;:38;;;;;;;;;12742:46;;;;12803:1;:15;;;-1:-1:-1;;;;;12803:20:11;;12799:60;;;12846:1;12839:9;;;;12799:60;12898:27;12909:1;:15;;;12898:10;:27::i;:::-;12869:56;;12942:24;12959:6;12942:24;;;;;;;;;;;;;;;;;;;;;;;;;12969:1;12942:28;;12661:316;-1:-1:-1;;;12661:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;487:96:26;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;767:94:26:-;842:12;767:94;:::o;1113:10259:5:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1113:10259:5;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" }, "gasEstimates": { "creation": { - "codeDepositCost": "4362600", - "executionCost": "25264", - "totalCost": "4387864" + "codeDepositCost": "4311600", + "executionCost": "infinite", + "totalCost": "infinite" }, "external": { "ESCAPE_HATCH_CALLER_ROLE()": "1100", @@ -3388,7 +3406,7 @@ "notice": "Authorizes multiple amounts within multiple Pledges to be withdrawn from the `vault` in an efficient single call " }, "normalizePledge(uint64)": { - "notice": "Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" + "notice": "////////////////Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" }, "numberOfPledgeAdmins()": { "notice": "//////////////////////////A constant getter used to check how many total Admins exist" @@ -4495,77 +4513,15 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052607f805460ff19169055341561001957600080fd5b61381a806100286000396000f3006060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029", - "sourceMap": "1112:24330:7:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1112:24330:7;;;;;;;;;;;;;;" + "object": "", + "sourceMap": "" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106101be5763ffffffff60e060020a6000350416631c8e856881146101c35780632101a6ad146101ea57806324fea3b0146102095780632a8ec8cc1461022e5780632f6b64ca1461024157806332ce8ebc146102fd578063387402911461031d5780633f657a4614610335578063485cc955146103c35780634eafbcd5146103e857806350f8a8031461040757806352dc7dcc146104425780635503d9ba146104ee57806360b1e057146105015780636293c702146105145780636e802c6a1461053357806372116e92146105ed57806379f4542e146106a95780637f61fa93146106c857806380afdea81461077457806381ea440814610787578063892db057146107a65780638b3dd749146107c55780639b3fdf4c146107d8578063a142d608146107eb578063a1658fad1461080a578063b09927a11461086d578063b12b5f7614610880578063c4d66de814610896578063c8ae070f146108b5578063cc19ecf7146108cb578063d4aae0c414610986578063db7c2314146109b5578063eba8ba0614610a70578063f5b6123014610bc6578063f6b24b1c14610bd9578063f92a79ff14610c94578063fbfa77cf14610ce5575b600080fd5b34156101ce57600080fd5b6101d6610cf8565b604051901515815260200160405180910390f35b34156101f557600080fd5b6101d66001604060020a0360043516610d01565b341561021457600080fd5b61021c610da8565b60405190815260200160405180910390f35b341561023957600080fd5b61021c610dca565b341561024c57600080fd5b6102666001604060020a0360043581169060243516610dd5565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156102c05780820151838201526020016102a8565b50505050905090810190601f1680156102ed5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561030857600080fd5b61031b6004803560248101910135610f03565b005b341561032857600080fd5b61031b6004351515610f9d565b341561034057600080fd5b6103546001604060020a0360043516611003565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156103a857fe5b60ff1681526020019850505050505050505060405180910390f35b34156103ce57600080fd5b61031b600160a060020a03600435811690602435166111a3565b34156103f357600080fd5b6101d6600160a060020a036004351661120e565b341561041257600080fd5b6104266001604060020a0360043516611285565b6040516001604060020a03909116815260200160405180910390f35b341561044d57600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a031692506114a2915050565b34156104f957600080fd5b61021c61169d565b341561050c57600080fd5b61021c6116a7565b341561051f57600080fd5b61031b600160a060020a03600435166116db565b341561053e57600080fd5b61042660048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611750915050565b34156105f857600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a0360208201358116965060408201351694506060013516915061194b9050565b34156106b457600080fd5b61031b600160a060020a0360043516611d6d565b34156106d357600080fd5b61042660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611de5915050565b341561077f57600080fd5b61021c611dfd565b341561079257600080fd5b61021c600160a060020a0360043516611e03565b34156107b157600080fd5b6101d6600160a060020a0360043516611e85565b34156107d057600080fd5b61021c611ea4565b34156107e357600080fd5b61021c611eaa565b34156107f657600080fd5b61031b600160a060020a0360043516611f26565b341561081557600080fd5b6101d660048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061217d95505050505050565b341561087857600080fd5b61021c6122bb565b341561088b57600080fd5b61031b6004356122ef565b34156108a157600080fd5b61031b600160a060020a0360043516612347565b34156108c057600080fd5b61031b600435612357565b34156108d657600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506123c6915050565b341561099157600080fd5b6109996124ba565b604051600160a060020a03909116815260200160405180910390f35b34156109c057600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506124c9915050565b3415610a7b57600080fd5b610a8f6001604060020a03600435166125bd565b60405180896002811115610a9f57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610b20578082015183820152602001610b08565b50505050905090810190601f168015610b4d5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610bd157600080fd5b610999612791565b3415610be457600080fd5b61031b600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506127a0915050565b3415610c9f57600080fd5b61099960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061289495505050505050565b3415610cf057600080fd5b610999612970565b607f5460ff1681565b600080610d0d83612984565b90506000815460ff166002811115610d2157fe5b1415610d305760009150610da2565b6002815460ff166002811115610d4257fe5b14610d4957fe5b600181015468010000000000000000900460ff1615610d6b5760019150610da2565b60018101546001604060020a03161515610d885760009150610da2565b6001810154610d9f906001604060020a0316610d01565b91505b50919050565b6040516000805160206137af8339815191528152601301604051809103902081565b607b54600019015b90565b600080610de061346b565b600080610dec876129ca565b915081600101600187036001604060020a0316815481101515610e0b57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169450610e3f85612984565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef35780601f10610ec857610100808354040283529160200191610ef3565b820191906000526020600020905b815481529060010190602001808311610ed657829003601f168201915b5050505050925050509250925092565b60006040516000805160206137af83398151915281526013016040518091039020610f4e33826000604051805910610f385750595b908082528060200260200182016040525061217d565b1515610f5957600080fd5b600091505b60ff821683901015610f9757610f8c848460ff8516818110610f7c57fe5b9050602002013560001916612357565b600190910190610f5e565b50505050565b6040516000805160206137af83398151915281526013016040518091039020610fe533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515610ff057600080fd5b50607f805460ff19169115919091179055565b60008060008060008060008061101761347d565b6110208a6129ca565b610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116110755790505b50505091835250506002828101546001604060020a0380821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561115157fe5b600281111561115c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600354156111b057600080fd5b6111b9816129fb565b600160a060020a03821615156111ce57600080fd5b607f805461010060a860020a031916610100600160a060020a0385160217905560016111fb607a826134c9565b506001611209607b826134f5565b505050565b607f54600090819060ff168061122b5750600160a060020a038316155b156112395760019150610da2565b600160a060020a0383166000908152607e602052604090205460ff16156112635760019150610da2565b61126c83611e03565b6000908152607d602052604090205460ff169392505050565b600080600080611294856129ca565b92506000600384015474010000000000000000000000000000000000000000900460ff1660028111156112c357fe5b146112d05784935061149a565b60028301546000680100000000000000009091046001604060020a03161180156113215750600283015470010000000000000000000000000000000090046001604060020a031661131f612a54565b115b156114695760028301546001840180546113ed926001604060020a031691906020808202016040519081016040528092919081815260200182805480156113b957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113765790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682612a58565b6002840154909250611449906801000000000000000090046001604060020a0316600060405180591061141d5750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682612a58565b905061145a85828560000154612d8b565b809450611466856129ca565b92505b61147285612e55565b90506001604060020a03808216908616146114965761149685828560000154612d8b565b8093505b505050919050565b60006114ad8261120e565b15156114b857600080fd5b50607a80549081600181016114cd83826134c9565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561154a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611640929160200190613521565b5060e08201518160030190805161165b929160200190613521565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061172333826000604051805910610f38575059908082528060200260200182016040525061217d565b151561172e57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b600061175b8261120e565b151561176657600080fd5b50607a805490816001810161177b83826134c9565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156117f857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516118ee929160200190613521565b5060e082015181600301908051611909929160200190613521565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b6000806119578361120e565b151561196257600080fd5b6001604060020a03851615611b845761197a85612984565b90506014611b71826101006040519081016040528154909190829060ff1660028111156119a357fe5b60028111156119ae57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a03908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015611ac15780601f10611a9657610100808354040283529160200191611ac1565b820191906000526020600020905b815481529060010190602001808311611aa457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b505050505081525050612f1d565b6001604060020a031610611b8457600080fd5b607a805492508260018101611b9983826134c9565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff19166001836002811115611c1757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206137cf833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611d0d929160200190613521565b5060e082015181600301908051611d28929160200190613521565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6040516000805160206137af83398151915281526013016040518091039020611db533826000604051805910610f38575059908082528060200260200182016040525061217d565b1515611dc057600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b6000611df43386868686611750565b95945050505050565b60015481565b6000611e0d61346b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b60208310611e515780518252601f199092019160209182019101611e32565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c45000000000000000081526018016040518091039020611f6384612f91565b611f6e33838361217d565b1515611f7957600080fd5b600160a060020a03851660009081526065602052604090205460ff1615611f9f57600080fd5b600160a060020a038516151561203157606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f193505050501515611fe857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1612176565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561208b57600080fd5b6102c65a03f1151561209c57600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561210b57600080fd5b6102c65a03f1151561211c57600080fd5b50505060405180519050151561213157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b600061218761346b565b600080845111156121a057835160200290508391508082525b600054600160a060020a031615806122b1575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561224757808201518382015260200161222f565b50505050905090810190601f1680156122745780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561229557600080fd5b6102c65a03f115156122a657600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206137af8339815191528152601301604051809103902061231782612fb1565b61232233838361217d565b151561232d57600080fd5b50506000908152607d60205260409020805460ff19169055565b600354156101be57600080fd5b50565b6040516000805160206137af8339815191528152601301604051809103902061239f33826000604051805910610f38575059908082528060200260200182016040525061217d565b15156123aa57600080fd5b506000908152607d60205260409020805460ff19166001179055565b60006123d186612984565b805490915033600160a060020a0390811661010090920416146123f357600080fd5b6001815460ff16600281111561240557fe5b1461240f57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612442929160200190613521565b5060038101838051612458929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b60006124d486612984565b805490915033600160a060020a0390811661010090920416146124f657600080fd5b6000815460ff16600281111561250857fe5b1461251257600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612545929160200190613521565b506003810183805161255b929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b6000806125c861346b565b6125d061346b565b60008060008060006125e18a612984565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127355780601f1061270a57610100808354040283529160200191612735565b820191906000526020600020905b81548152906001019060200180831161271857829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b606454600160a060020a031681565b60006127ab86612984565b805490915033600160a060020a0390811661010090920416146127cd57600080fd5b6002815460ff1660028111156127df57fe5b146127e957600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161281c929160200190613521565b5060038101838051612832929160200190613521565b5080546001604060020a0380841660a860020a026000805160206137cf83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b600061289e612fc2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129055780820151838201526020016128ed565b50505050905090810190601f1680156129325780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561295057600080fd5b6102c65a03f1151561296157600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a0383161061299e57600080fd5b607a80546001604060020a0384169081106129b557fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106129e457600080fd5b607b80546001604060020a0384169081106129b557fe5b60035415612a0857600080fd5b612a106130b2565b600160a060020a0381161515612a2557600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b4290565b6000806000888a898989898960405180888051906020019060200280838360005b83811015612a91578082015183820152602001612a79565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a038516026020820152603401826002811115612afb57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a039091169150811115612b6557809250612d7e565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a038316179055815490919060018101612ba583826134f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a03168152602001886002811115612c2657fe5b905291905081518155602082015181600101908051612c4992916020019061359b565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000836002811115612d7257fe5b02179055505050508092505b5050979650505050505050565b6000806000612d9d60018787876130cc565b9250846001604060020a0316866001604060020a03161415612dbe57612e4d565b821515612dca57612e4d565b612dd3866129ca565b9150612dde856129ca565b825490915083901015612df057600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3612e4b60008787866130cc565b505b505050505050565b600080806001604060020a0384161515612e725760009250612f16565b612e7b846129ca565b6002810154909250612e95906001604060020a0316612984565b90506000815460ff166002811115612ea957fe5b1415612eb757839250612f16565b6002815460ff166002811115612ec957fe5b14612ed057fe5b6002820154612ee7906001604060020a0316610d01565b1515612ef557839250612f16565b6002820154612f139060c060020a90046001604060020a0316612e55565b92505b5050919050565b600080600283516002811115612f2f57fe5b14612f3657fe5b82606001516001604060020a03161515612f535760019150610da2565b612f608360600151612984565b9050612f87816101006040519081016040528154909190829060ff1660028111156119a357fe5b6001019392505050565b612f9961346b565b612fab82600160a060020a03166130e9565b92915050565b612fb961346b565b612fab826130e9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561308e57600080fd5b6102c65a03f1151561309f57600080fd5b50505060405180519250829150505b5090565b600354156130bf57600080fd5b6130c7613130565b600355565b806130da8585808685613134565b9050611df48584868685613134565b6130f161346b565b60016040518059106131005750595b90808252806020026020018201604052509050818160008151811061312157fe5b60209081029091010152919050565b4390565b600080600080866001604060020a0316886001604060020a03161461315b5761010061315e565b60005b61ffff169250849350613170886129ca565b600281015460038201549193506131a2918b916001604060020a0316908a908a908890600160a060020a03168a6132a6565b9350600090505b60018201546001604060020a03821610156132355761322b8983600101836001604060020a03168154811015156131dc57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a6132a6565b93506001016131a9565b60028201546000680100000000000000009091046001604060020a0316111561329a5760028201546003830154613297918b91680100000000000000009091046001604060020a0316908a908a9060ff890190600160a060020a03168a6132a6565b93505b50505095945050505050565b806000806132b389612984565b600181015490915069010000000000000000009004600160a060020a0316158015906132df5750600083115b15612d7e5789156133b757600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561338657600080fd5b6102c65a03f1151561339757600080fd5b5050506040518051925050828211156133af57600080fd5b819250612d7e565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561344a57600080fd5b6102c65a03f1151561345b57600080fd5b5050505050979650505050505050565b60206040519081016040526000815290565b610100604051908101604052806000815260200161349961346b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161120957600402816004028360005260206000209182019101611209919061364f565b8154818355818115116112095760040281600402836000526020600020918201910161120991906136b6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061356257805160ff191683800117855561358f565b8280016001018555821561358f579182015b8281111561358f578251825591602001919060010190613574565b506130ae929150613706565b828054828255906000526020600020906003016004900481019282156136435791602002820160005b8382111561360e57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026135c4565b80156136415782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261360e565b505b506130ae929150613720565b610dd291905b808211156130ae5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061369f6002830182613745565b6136ad600383016000613745565b50600401613655565b610dd291905b808211156130ae5760008082556136d66001830182613789565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016136bc565b610dd291905b808211156130ae576000815560010161370c565b610dd291905b808211156130ae57805467ffffffffffffffff19168155600101613726565b50805460018160011615610100020316600290046000825580601f1061376b5750612354565b601f0160209004906000526020600020908101906123549190613706565b50805460008255600301600490049060005260206000209081019061235491906137065600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820fb6e4cf9516853e8ddd44bed47e2e2874674eaee72a9b5096e058f3d286fe4600029", - "sourceMap": "1112:24330:7:-;;;;;;;;;-1:-1:-1;;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;-1:-1:-1;;;;;11553:482:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;2790:397:7;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226:9;;;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;1903:611:12;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:319:7;;;;;;;;;;-1:-1:-1;;;;;2143:319:7;;;;;;;;;;2126:450:9;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4196:1304:7;;;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;;;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;-1:-1:-1;;;;;4897:582:11;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;9903:103;;;;;;;;;;;;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;-1:-1:-1;;;;;2463:606:11;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;-1:-1:-1;;;;;7535:894:11;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;-1:-1:-1;;;;;2051:311:11;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1330:88:0;;;;;;;;;;;;1670:174:9;;;;;;;;;;;;;;1635:162:7;;;;;;;;;;-1:-1:-1;;;;;1635:162:7;;;;;1284:148:9;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;-1:-1:-1;;;;;6233:531:11;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;3709:511:11;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;-1:-1:-1;;;;;3709:511:11;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;10774:572;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;-1:-1:-1;;;;;9133:520:11;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;;;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;-1:-1:-1;;;;;11918:15:11;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;-1:-1:-1;;;;;12012:15:11;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;;:::o;2790:397:7:-;2883:17;2910:12;2932:11;;:::i;:::-;2960:16;3067:28;2979:21;2991:8;2979:11;:21::i;:::-;2960:40;;3023:1;:17;;3055:1;3041:11;:15;-1:-1:-1;;;;;3023:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3023:34:7;3010:47;;3098:22;3109:10;3098;:22::i;:::-;3067:53;;3137:8;:13;;;;;;;;;;-1:-1:-1;;;;;3137:13:7;3130:20;;3167:8;:13;;3160:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:397;;;;;;;:::o;1438:226:9:-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;;1438:226;;;;:::o;1994:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;1903:611:12:-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;2143:319:7:-;140:19:27;;:24;132:33;;;;;;2238:41:7;2255:23;2238:16;:41::i;:::-;-1:-1:-1;;;;;2297:13:7;;;;2289:22;;;;;;2322:5;:24;;-1:-1:-1;;;;;;2322:24:7;;-1:-1:-1;;;;;2322:24:7;;;;;;-1:-1:-1;2357:17:7;:6;-1:-1:-1;2357:17:7;:::i;:::-;-1:-1:-1;2427:1:7;2410:18;:7;2427:1;2410:18;:::i;:::-;;2143:319;;:::o;2126:450:9:-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4196:1304:7:-;4253:6;4271:16;4669;4924:15;4290:21;4302:8;4290:11;:21::i;:::-;4271:40;-1:-1:-1;4457:19:7;4440:13;;;;;;;;;:36;;;;;;;;;4436:82;;4499:8;4492:15;;;;4436:82;4599:17;;;;4619:1;4599:17;;;;-1:-1:-1;;;;;4599:17:7;:21;4598:55;;;;-1:-1:-1;4640:12:7;;;;;;;-1:-1:-1;;;;;4640:12:7;4627:10;:8;:10::i;:::-;:25;4598:55;4594:714;;;4725:7;;;;;4750:17;;4688:222;;;;-1:-1:-1;;;;;4725:7:7;;4750:17;4688:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4688:222:7;-1:-1:-1;;;;;4688:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4823:11:7;;;;4852:7;;;;4785:1;;-1:-1:-1;4785:1:7;;-1:-1:-1;;;4823:11:7;;-1:-1:-1;;;;;4823:11:7;;-1:-1:-1;;;;;4852:7:7;4785:1;4688:19;:222::i;:::-;4979:17;;;;4669:241;;-1:-1:-1;4942:228:7;;4979:17;;;-1:-1:-1;;;;;4979:17:7;5027:1;5014:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5112:7:7;;;;5047:1;;;;5085:9;;-1:-1:-1;;;;;5112:7:7;5047:1;4942:19;:228::i;:::-;4924:246;;5184:41;5196:8;5206;5216:1;:8;;;5184:11;:41::i;:::-;5250:8;5239:19;;5276:21;5288:8;5276:11;:21::i;:::-;5272:25;;4594:714;5329:37;5357:8;5329:27;:37::i;:::-;5318:48;-1:-1:-1;;;;;;5380:20:7;;;;;;;5376:92;;5416:41;5428:8;5438;5448:1;:8;;;5416:11;:41::i;:::-;5485:8;5478:15;;4196:1304;;;;;;;:::o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;-1:-1:-1;;;;;5207:219:11;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;-1:-1:-1;;;;;5447:25:11;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;-1:-1:-1;;;;;2812:210:11;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;-1:-1:-1;;;;;3043:19:11;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;-1:-1:-1;;;;;7821:18:11;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8013:42:11;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;-1:-1:-1;;;;;8399:23:11;;;;;;;;;;;7535:894;;;;;;;;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;492:1:24;2416:624:0;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1635:162:7:-;140:19:27;;:24;132:33;;;;;1714:14:7;1635:162;:::o;1284:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;-1:-1:-1;;;;;6684:35:11;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;-1:-1:-1;;;;;4149:32:11;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;10774:572::-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;-1:-1:-1;;;;;11219:12:11;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;11293:10:11;;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;9133:520:11:-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;-1:-1:-1;;;;;9576:34:11;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;-1:-1:-1;;;;;12371:23:11;;;12363:32;;;;;;12412:6;:15;;-1:-1:-1;;;;;12412:15:11;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;4554::12:-;4659:7;:14;4614:6;;-1:-1:-1;;;;;4648:25:12;;;4640:34;;;;;;4691:7;:17;;-1:-1:-1;;;;;4691:17:12;;;;;;;;2001:207:0;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;25364:76:7:-;25430:3;25364:76;:::o;3613:842:12:-;3857:6;3879:15;3994:9;3907:15;3924:5;3931:15;3948:10;3960:9;3971:5;3978;3897:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4006:20:12;;;;-1:-1:-1;4040:6:12;;4036:46;;;4069:2;4062:9;;;;4036:46;-1:-1:-1;4104:7:12;:14;;4129:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4129:25:12;-1:-1:-1;;;;;4129:25:12;;;;;4164:265;;4104:14;;:7;-1:-1:-1;4164:265:12;;;4104:7;4164:265;;:::i;:::-;;;;;;;;;;;;4190:229;;;;;;;;;4214:1;4190:229;;;;4233:15;4190:229;;;;4266:5;-1:-1:-1;;;;;4190:229:12;;;;;4289:15;-1:-1:-1;;;;;4190:229:12;;;;;4322:10;-1:-1:-1;;;;;4190:229:12;;;;;4350:9;-1:-1:-1;;;;;4190:229:12;;;;;4377:5;-1:-1:-1;;;;;4190:229:12;;;;;4400:5;4190:229;;;;;;;;;;4164:265;;-1:-1:-1;4164:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;;;;;;;;;;;;;;;;;;;4446:2;4439:9;;3613:842;;;;;;;;;;;;:::o;17446:534:7:-;17524:11;17699:20;17749:18;17538:37;17551:4;17557;17563:2;17567:7;17538:12;:37::i;:::-;17524:51;;17597:2;-1:-1:-1;;;;;17589:10:7;:4;-1:-1:-1;;;;;17589:10:7;;17585:47;;;17615:7;;17585:47;17645:11;;17641:48;;;17672:7;;17641:48;17722:17;17734:4;17722:11;:17::i;:::-;17699:40;;17770:15;17782:2;17770:11;:15::i;:::-;17804:12;;17749:36;;-1:-1:-1;17804:22:7;;;;17796:31;;;;;;17837:22;;;;;;;17869:20;;;;;;-1:-1:-1;;;;;17900:26:7;;;;;;;17853:6;17900:26;;;;;;;;;;;;;;17936:37;17949:5;17956:4;17962:2;17966:6;17936:12;:37::i;:::-;;17446:534;;;;;;;:::o;18963:583::-;19053:6;;;-1:-1:-1;;;;;19079:13:7;;;19075:52;;;19115:1;19108:8;;;;19075:52;19156:21;19168:8;19156:11;:21::i;:::-;19226:7;;;;19137:40;;-1:-1:-1;19215:19:7;;-1:-1:-1;;;;;19226:7:7;19215:10;:19::i;:::-;19187:47;-1:-1:-1;19276:21:7;19257:15;;;;:40;;;;;;;;;19253:86;;;19320:8;19313:15;;;;19253:86;19375:23;19356:15;;;;:42;;;;;;;;;19349:50;;;;19432:7;;;;19414:26;;-1:-1:-1;;;;;19432:7:7;19414:17;:26::i;:::-;19413:27;19409:73;;;19463:8;19456:15;;;;19409:73;19527:11;;;;19499:40;;-1:-1:-1;;;19527:11:7;;-1:-1:-1;;;;;19527:11:7;19499:27;:40::i;:::-;19492:47;;18963:583;;;;;;:::o;12650:311:11:-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;-1:-1:-1;;;;;12787:20:11;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;24597:649:7:-;24788:6;24873:145;24905:6;24925:10;;24973:8;24788:6;24873:18;:145::i;:::-;24857:161;;25096:143;25128:6;25148:8;25170:10;25194:8;25216:13;25096:18;:143::i;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;767:94:27:-;842:12;767:94;:::o;22510:1549:7:-;22681:18;22818:13;22908:16;23260:8;22846:10;-1:-1:-1;;;;;22834:22:7;:8;-1:-1:-1;;;;;22834:22:7;;:32;;22863:3;22834:32;;;22859:1;22834:32;22818:48;;;;22892:6;22876:22;;22927:21;22939:8;22927:11;:21::i;:::-;23067:7;;;;23154;;;;22908:40;;-1:-1:-1;23022:176:7;;23047:6;;-1:-1:-1;;;;;23067:7:7;;23088:10;;23112:8;;23134:6;;-1:-1:-1;;;;;23154:7:7;23175:13;23022:11;:176::i;:::-;23006:192;;23271:1;23260:12;;23255:324;23278:17;;;:24;-1:-1:-1;;;;;23274:28:7;;;23255:324;;;23339:229;23368:6;23392:1;:17;;23410:1;-1:-1:-1;;;;;23392:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23392:20:7;23430:10;23458:8;23493:1;23484:6;:10;23497:1;23484:14;23516:1;:7;;;;;;;;;;-1:-1:-1;;;;;23516:7:7;23541:13;23339:11;:229::i;:::-;23323:245;-1:-1:-1;23304:3:7;;23255:324;;;23765:17;;;;23785:1;23765:17;;;;-1:-1:-1;;;;;23765:17:7;:21;23761:292;;;23871:17;;;;23990:7;;;;23818:224;;23847:6;;23871:17;;;;-1:-1:-1;;;;;23871:17:7;;23906:10;;23934:8;;23969:3;23960:12;;;-1:-1:-1;;;;;23990:7:7;24015:13;23818:11;:224::i;:::-;23802:240;;23761:292;22510:1549;;;;;;;;;;:::o;20517:1287::-;20802:6;20727:18;;20846:19;20857:7;20846:10;:19::i;:::-;20969:12;;;;;;-1:-1:-1;20969:12:7;;;-1:-1:-1;;;;;20969:12:7;20961:26;;;;:47;;;21007:1;20991:13;:17;20961:47;20957:841;;;21161:6;21157:631;;;21199:12;;;;;;;-1:-1:-1;;;;;21199:12:7;:27;21248:7;21277:10;21309:8;21339:7;21368:5;21395:6;21199:220;;;;;;;;-1:-1:-1;;;21199:220:7;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21445:26:7;;;;21437:35;;;;;;21506:9;21490:25;;21157:631;;;21554:12;;;;;;;-1:-1:-1;;;;;21554:12:7;:26;21602:7;21631:10;21663:8;21693:7;21722:5;21749:6;21554:219;;-1:-1:-1;;;21554:219:7;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20517:1287;;;;;;;;;;;:::o;1112:24330::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1112:24330:7;;;-1:-1:-1;1112:24330:7;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1112:24330:7;;;;;-1:-1:-1;;;;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1112:24330:7;;;-1:-1:-1;1112:24330:7;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1112:24330:7;;;;;;;;;;-1:-1:-1;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1112:24330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "2872400", - "executionCost": "23351", - "totalCost": "2895751" - }, - "external": { - "ESCAPE_HATCH_CALLER_ROLE()": "880", - "EVMSCRIPT_REGISTRY_APP()": "991", - "EVMSCRIPT_REGISTRY_APP_ID()": "594", - "PLUGIN_MANAGER_ROLE()": "infinite", - "addDelegate(string,string,uint64,address)": "infinite", - "addGiver(address,string,string,uint64,address)": "infinite", - "addGiver(string,string,uint64,address)": "infinite", - "addProject(string,string,address,uint64,uint64,address)": "infinite", - "addValidPluginContract(bytes32)": "infinite", - "addValidPluginContracts(bytes32[])": "infinite", - "addValidPluginInstance(address)": "infinite", - "appId()": "854", - "canPerform(address,bytes32,uint256[])": "infinite", - "escapeHatch(address)": "infinite", - "escapeHatchDestination()": "1337", - "getCodeHash(address)": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "920", - "getPledge(uint64)": "infinite", - "getPledgeAdmin(uint64)": "infinite", - "getPledgeDelegate(uint64,uint64)": "infinite", - "initialize(address)": "1102", - "initialize(address,address)": "infinite", - "isProjectCanceled(uint64)": "infinite", - "isTokenEscapable(address)": "1135", - "isValidPlugin(address)": "infinite", - "kernel()": "1271", - "normalizePledge(uint64)": "infinite", - "numberOfPledgeAdmins()": "709", - "numberOfPledges()": "512", - "removeValidPluginContract(bytes32)": "infinite", - "removeValidPluginInstance(address)": "infinite", - "updateDelegate(uint64,address,string,string,uint64)": "infinite", - "updateGiver(uint64,address,string,string,uint64)": "infinite", - "updateProject(uint64,address,string,string,uint64)": "infinite", - "useWhitelist(bool)": "infinite", - "vault()": "1414", - "whitelistDisabled()": "448" - }, - "internal": { - "_appendDelegate(uint64,uint256,uint64)": "infinite", - "_callPlugin(bool,uint64,uint64,uint64,uint64,address,uint256)": "infinite", - "_callPlugins(bool,uint64,uint64,uint256)": "infinite", - "_callPluginsPledge(bool,uint64,uint64,uint64,uint256)": "infinite", - "_doTransfer(uint64,uint64,uint256)": "infinite", - "_getOldestPledgeNotCanceled(uint64)": "infinite", - "_getTime()": "14", - "_maxCommitTime(struct LiquidPledgingStorage.Pledge memory)": "infinite", - "_proposeAssignProject(uint64,uint256,uint64)": "infinite", - "_transfer(uint64,uint64,uint256,uint64)": "infinite", - "_transferOwnershipToGiver(uint64,uint256,uint64)": "infinite", - "_transferOwnershipToProject(uint64,uint256,uint64)": "infinite", - "_undelegate(uint64,uint256,uint256)": "infinite", - "checkAdminOwner(uint64)": "infinite" - } + "object": "", + "sourceMap": "" }, + "gasEstimates": null, "methodIdentifiers": { "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", @@ -4640,7 +4596,7 @@ "notice": "Checks to see if `_token` is in the blacklist of tokens" }, "normalizePledge(uint64)": { - "notice": "Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" + "notice": "////////////////Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" }, "numberOfPledgeAdmins()": { "notice": "//////////////////////////A constant getter used to check how many total Admins exist" @@ -5746,6 +5702,17 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "name": "_escapeHatchDestination", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -5938,7 +5905,7 @@ }, "donate(uint64,uint64,address,uint256)": { "params": { - "idGiver": "The id of the Giver donating; if 0, a new id is created", + "idGiver": "The id of the Giver donating", "idReceiver": "The Admin receiving the donation; can be any Admin: the Giver themselves, another Giver, a Delegate or a Project" } }, @@ -6071,19 +6038,19 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052607f805460ff19169055341561001957600080fd5b6155a0806100286000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029", - "sourceMap": "1086:825:8:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1086:825:8;;;;;;;;;;;;;;" + "object": "6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005586833981016040528080519150819050806200004d8164010000000062004e556200005682021704565b505050620000d5565b6200006e64010000000062005066620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005080620000d182021704565b600355565b4390565b6154a180620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029", + "sourceMap": "1086:946:8:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1167:115:8;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1167:115:8;;-1:-1:-1;1167:115:8;1809:30:0;1167:115:8;1809:5:0;;;;;;:30;:::i;:::-;1737:109;1166::5;1167:115:8;1086:946;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1086:946:8:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461067857806357adafb61461068b57806360b1e057146106da5780636293c702146106ed5780636ba3cc871461070c5780636e802c6a1461073a57806372116e92146107f4578063796d5654146108b057806379f4542e146108cf5780637f61fa93146108ee57806380afdea81461099a57806381ea4408146109ad578063892db057146109cc5780638b3dd749146109eb5780639398f5a2146109fe5780639b3fdf4c14610a4d5780639da47a6b14610a60578063a142d60814610a73578063a1658fad14610a92578063ab8be23114610af5578063af9f456314610b0b578063b09927a114610b2d578063b12b5f7614610b40578063c4d66de814610b56578063c8ae070f14610b75578063cc19ecf714610b8b578063ce17273c14610c46578063d4aae0c414610c95578063d639cd7314610cc4578063db7c231414610d2c578063e9c211e214610de7578063eba8ba0614610e09578063ef3766e414610f5f578063f5b6123014610fae578063f6b24b1c14610fc1578063f92a79ff1461107c578063fbfa77cf146110cd575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a03602435811690604435166064356110e0565b005b34156102b357600080fd5b6102bb61113b565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516611144565b34156102f957600080fd5b6103016111e6565b60405190815260200160405180910390f35b341561031e57600080fd5b610301611208565b341561033157600080fd5b6102a66001604060020a0360043516602435611213565b341561035357600080fd5b61036d6001604060020a0360043581169060243516611347565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a66004803560248101910135611475565b341561042d57600080fd5b6102a66004351515611509565b341561044557600080fd5b6104596001604060020a036004351661156f565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a03600435166024356116ec565b34156104f557600080fd5b6102a66001604060020a0360043581169060243581169060443590606435166118d3565b341561052457600080fd5b6102a6600160a060020a03600435811690602435166118e8565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a0360443516606435611907565b341561057d57600080fd5b6102bb600160a060020a0360043516611a9e565b341561059c57600080fd5b6105b06001604060020a0360043516611b15565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611d0a915050565b341561068357600080fd5b610301611f00565b341561069657600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611f0a95505050505050565b34156106e557600080fd5b610301611f75565b34156106f857600080fd5b6102a6600160a060020a0360043516611fa9565b341561071757600080fd5b6102a66001604060020a0360043516600160a060020a036024351660443561201e565b341561074557600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061202f915050565b34156107ff57600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a0385358116956001604060020a036020820135811696506040820135169450606001351691506122259050565b34156108bb57600080fd5b6102a66001604060020a036004351661263d565b34156108da57600080fd5b6102a6600160a060020a03600435166126a7565b34156108f957600080fd5b6105b060046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a0316925061271f915050565b34156109a557600080fd5b610301612737565b34156109b857600080fd5b610301600160a060020a036004351661273d565b34156109d757600080fd5b6102bb600160a060020a03600435166127bf565b34156109f657600080fd5b6103016127de565b3415610a0957600080fd5b6102a660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127e495505050505050565b3415610a5857600080fd5b61030161284f565b3415610a6b57600080fd5b6103016128cb565b3415610a7e57600080fd5b6102a6600160a060020a03600435166128d1565b3415610a9d57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612b2795505050505050565b3415610b0057600080fd5b6102a6600435612c65565b3415610b1657600080fd5b6102a66001604060020a0360043516602435612c6a565b3415610b3857600080fd5b610301612cd9565b3415610b4b57600080fd5b6102a6600435612d0d565b3415610b6157600080fd5b6102a6600160a060020a0360043516612d65565b3415610b8057600080fd5b6102a6600435612d75565b3415610b9657600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612de4915050565b3415610c5157600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612ed895505050505050565b3415610ca057600080fd5b610ca8612f0f565b604051600160a060020a03909116815260200160405180910390f35b3415610ccf57600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612f1e915050565b3415610d3757600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a03169250612f93915050565b3415610df257600080fd5b6102a66001604060020a0360043516602435613087565b3415610e1457600080fd5b610e286001604060020a03600435166131af565b60405180896002811115610e3857fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610eb9578082015183820152602001610ea1565b50505050905090810190601f168015610ee65780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610f1c578082015183820152602001610f04565b50505050905090810190601f168015610f495780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610f6a57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061337e95505050505050565b3415610fb957600080fd5b610ca86133e9565b3415610fcc57600080fd5b6102a6600480356001604060020a03169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505092356001604060020a031692506133f8915050565b341561108757600080fd5b610ca860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ec95505050505050565b34156110d857600080fd5b610ca86135c8565b6000600160a060020a03841615156110f757600080fd5b611126846020604051908101604052806000815250602060405190810160405260008082526203f4809061202f565b905061113481868585611907565b5050505050565b607f5460ff1681565b600080611150836135dc565b90506000815460ff16600281111561116457fe5b141561117357600091506111e0565b6002815460ff16600281111561118557fe5b1461118c57fe5b6001810154604060020a900460ff16156111a957600191506111e0565b60018101546001604060020a031615156111c657600091506111e0565b60018101546111dd906001604060020a0316611144565b91505b50919050565b6040516000805160206155358339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a03908116610100909204161461123857600080fd5b61124184613622565b91506001600383015460a060020a900460ff16600281111561125f57fe5b1461126957600080fd5b6002820154600183018054611334926001604060020a031691906020808202016040519081016040528092919081815260200182805480156112fc57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116112b95790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613653565b9050611341848285613975565b50505050565b6000806113526151f1565b60008061135e87613622565b915081600101600187036001604060020a031681548110151561137d57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506113b1856135dc565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114655780601f1061143a57610100808354040283529160200191611465565b820191906000526020600020905b81548152906001019060200180831161144857829003601f168201915b5050505050925050509250925092565b6000604051600080516020615535833981519152815260130160405180910390206114c0338260006040518059106114aa5750595b9080825280602002602001820160405250612b27565b15156114cb57600080fd5b600091505b60ff821683901015611341576114fe848460ff85168181106114ee57fe5b9050602002013560001916612d75565b6001909101906114d0565b60405160008051602061553583398151915281526013016040518091039020611551338260006040518059106114aa5750599080825280602002602001820160405250612b27565b151561155c57600080fd5b50607f805460ff19169115919091179055565b600080600080600080600080611583615203565b61158c8a613622565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561162457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115e15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561169a57fe5b60028111156116a557fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60008060006116fa85611b15565b945061170585613622565b92506000600384015460a060020a900460ff16600281111561172357fe5b1461172d57600080fd5b6002830154611744906001604060020a0316613a35565b600283015460018401805461180c926001604060020a031691906020808202016040519081016040528092919081815260200182805480156117d757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116117945790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613653565b9150611819858386613975565b6002830154611830906001604060020a03166135dc565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156118b857600080fd5b6102c65a03f115156118c957600080fd5b5050505050505050565b6118dc84613a35565b61134184848484613a8c565b600354156118f557600080fd5b6118ff8282614127565b50504260b255565b600080806001604060020a03871681901161192157600080fd5b6000841161192e57600080fd5b600160a060020a038516151561194357600080fd5b61194c876135dc565b92506000835460ff16600281111561196057fe5b1461196a57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156119e057600080fd5b6102c65a03f115156119f157600080fd5b505050604051805190501515611a0657600080fd5b611a37876000604051805910611a195750595b908082528060200260200182016040525060008060008a6000613653565b9150611a4282613622565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a3611a9587838689613a8c565b50505050505050565b607f54600090819060ff1680611abb5750600160a060020a038316155b15611ac957600191506111e0565b600160a060020a0383166000908152607e602052604090205460ff1615611af357600191506111e0565b611afc8361273d565b6000908152607d602052604090205460ff169392505050565b600080600080611b2485613622565b92506000600384015460a060020a900460ff166002811115611b4257fe5b14611b4f57849350611d02565b60028301546000604060020a9091046001604060020a0316118015611b8e57506002830154608060020a90046001604060020a0316611b8c61418d565b115b15611cd1576002830154600184018054611c5a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411611be35790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b6002840154909250611cb190604060020a90046001604060020a03166000604051805910611c855750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050611cc285828560000154613975565b809450611cce85613622565b92505b611cda85614193565b90506001604060020a0380821690861614611cfe57611cfe85828560000154613975565b8093505b505050919050565b6000611d1582611a9e565b1515611d2057600080fd5b50607a8054908160018101611d35838261524f565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a0333811660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611db257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611ea392916020019061527b565b5060e082015181600301908051611ebe92916020019061527b565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b607a546000190190565b600080805b8351831015611341576001604060020a03848481518110611f2c57fe5b90602001906020020151169150604060020a848481518110611f4a57fe5b90602001906020020151811515611f5d57fe5b049050611f6a82826116ec565b600190920191611f0f565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061553583398151915281526013016040518091039020611ff1338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515611ffc57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19169055565b61202a833384846110e0565b505050565b600061203a82611a9e565b151561204557600080fd5b50607a805490816001810161205a838261524f565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff191660018360028111156120d757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516121c892916020019061527b565b5060e0820151816003019080516121e392916020019061527b565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061223183611a9e565b151561223c57600080fd5b6001604060020a0385161561245957612254856135dc565b90506014612446826101006040519081016040528154909190829060ff16600281111561227d57fe5b600281111561228857fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156123965780601f1061236b57610100808354040283529160200191612396565b820191906000526020600020905b81548152906001019060200180831161237957829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124385780601f1061240d57610100808354040283529160200191612438565b820191906000526020600020905b81548152906001019060200180831161241b57829003601f168201915b50505050508152505061425b565b6001604060020a03161061245957600080fd5b607a80549250826001810161246e838261524f565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c1660208301526001604060020a03808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff191660018360028111156124ec57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615555833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516125dd92916020019061527b565b5060e0820151816003019080516125f892916020019061527b565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b6000612648826135dc565b905061265382613a35565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615535833981519152815260130160405180910390206126ef338260006040518059106114aa5750599080825280602002602001820160405250612b27565b15156126fa57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b600061272e338686868661202f565b95945050505050565b60015481565b60006127476151f1565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611341576001604060020a0384848151811061280657fe5b90602001906020020151169150604060020a84848151811061282457fe5b9060200190602002015181151561283757fe5b0490506128448282611213565b6001909201916127e9565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061290e846142cf565b612919338383612b27565b151561292457600080fd5b600160a060020a03851660009081526065602052604090205460ff161561294a57600080fd5b600160a060020a03851615156129dc57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561299357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1611134565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612a3657600080fd5b6102c65a03f11515612a4757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612ab657600080fd5b6102c65a03f11515612ac757600080fd5b505050604051805190501515612adc57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612b316151f1565b60008084511115612b4a57835160200290508391508082525b600054600160a060020a03161580612c5b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612bf1578082015183820152602001612bd9565b50505050905090810190601f168015612c1e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612c3f57600080fd5b6102c65a03f11515612c5057600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612c7684611b15565b9350612c8184613622565b600281015490925060c060020a90046001604060020a03161515612ca457600080fd5b6002820154612cbb906001604060020a0316613a35565b60028201546113349060c060020a90046001604060020a0316614193565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061553583398151915281526013016040518091039020612d35826142ef565b612d40338383612b27565b1515612d4b57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061553583398151915281526013016040518091039020612dbd338260006040518059106114aa5750599080825280602002602001820160405250612b27565b1515612dc857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612def866135dc565b805490915033600160a060020a039081166101009092041614612e1157600080fd5b6001815460ff166002811115612e2357fe5b14612e2d57600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051612e6092916020019061527b565b5060038101838051612e7692916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b60005b8151811015612f0b57612f02828281518110612ef357fe5b90602001906020020151611b15565b50600101612edb565b5050565b600054600160a060020a031681565b600080805b8451831015612f8b576001604060020a03858481518110612f4057fe5b90602001906020020151169150604060020a858481518110612f5e57fe5b90602001906020020151811515612f7157fe5b049050612f80868383876118d3565b600190920191612f23565b505050505050565b6000612f9e866135dc565b805490915033600160a060020a039081166101009092041614612fc057600080fd5b6000815460ff166002811115612fd257fe5b14612fdc57600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161300f92916020019061527b565b506003810183805161302592916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b607f54600090819033600160a060020a0390811661010090920416146130ac57600080fd5b6130b584613622565b91506001600383015460a060020a900460ff1660028111156130d357fe5b146130dd57600080fd5b60028201546001830180546131a4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561317057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161312d5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b905061133481611b15565b6000806131ba6151f1565b6131c26151f1565b60008060008060006131d38a6135dc565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132885780601f1061325d57610100808354040283529160200191613288565b820191906000526020600020905b81548152906001019060200180831161326b57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133275780601f106132fc57610100808354040283529160200191613327565b820191906000526020600020905b81548152906001019060200180831161330a57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611341576001604060020a038484815181106133a057fe5b90602001906020020151169150604060020a8484815181106133be57fe5b906020019060200201518115156133d157fe5b0490506133de8282613087565b600190920191613383565b606454600160a060020a031681565b6000613403866135dc565b805490915033600160a060020a03908116610100909204161461342557600080fd5b6002815460ff16600281111561343757fe5b1461344157600080fd5b805461010060a860020a031916610100600160a060020a038716021781556002810184805161347492916020019061527b565b506003810183805161348a92916020019061527b565b5080546001604060020a0380841660a860020a0260008051602061555583398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b60006134f6614300565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561355d578082015183820152602001613545565b50505050905090810190601f16801561358a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156135a857600080fd5b6102c65a03f115156135b957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135f657600080fd5b607a80546001604060020a03841690811061360d57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a0383161061363c57600080fd5b607b80546001604060020a03841690811061360d57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561368c578082015183820152602001613674565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136f657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561376057809250613968565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137a083826152f5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a0316815260200188600281111561382157fe5b905291905081518155602082015181600101908051613844929160200190615321565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561395c57fe5b02179055505050508092505b5050979650505050505050565b600080600061398760018787876143f0565b9250846001604060020a0316866001604060020a031614156139a857612f8b565b8215156139b457612f8b565b6139bd86613622565b91506139c885613622565b8254909150839010156139da57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611a9560008787866143f0565b6000613a40826135dc565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a815750805433600160a060020a0390811661010090920416145b1515612f0b57600080fd5b600080808080806001604060020a038716819011613aa957600080fd5b613ab289611b15565b9850613abd89613622565b9550613ac8876135dc565b94506000600387015460a060020a900460ff166002811115613ae657fe5b14613af057600080fd5b60028601546001604060020a038b811691161415613df6576000855460ff166002811115613b1a57fe5b1415613b3057613b2b89898961440d565b613df1565b6002855460ff166002811115613b4257fe5b1415613b5357613b2b898989614467565b6001855460ff166002811115613b6557fe5b1415613def57613c918661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bc45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6002811115613c8857fe5b905250886146a5565b60028701546001604060020a0391821695506000604060020a909104909116118015613cc457506001604060020a038414155b15613dd057600186015460001901841415613db2576002860154600187018054613da0926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d6c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613d295790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613653565b9250613dad89848a613975565b613dcb565b613dc989896001848a60010180549050030361470b565b505b613b2b565b613de28989886001018054905061470b565b9850613b2b898989614815565bfe5b61411b565b613f1c8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e9257602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e4f5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613f0857fe5b6002811115613f1357fe5b9052508b6146a5565b6001604060020a0390811692508214613def576000855460ff166002811115613f4157fe5b1415613f785760028601546001604060020a03888116911614613f6057fe5b613f728989886001018054905061470b565b5061411b565b6001855460ff166002811115613f8a57fe5b14156140df576140778661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613c0757600091825260209182902080546001604060020a03168452908202830192909160089101808411613bc4575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c7d57fe5b6001604060020a0390811691508114156140a257613de289896001858a60010180549050030361470b565b818111156140c157613de289896001858a60010180549050030361470b565b818111613df157613f7289896001848a60010180549050030361470b565b6002855460ff1660028111156140f157fe5b1415613def5761410e89896001858a60010180549050030361470b565b9850613df1898989614945565b50505050505050505050565b6003541561413457600080fd5b61413d81614c58565b600160a060020a038216151561415257600080fd5b607f805461010060a860020a031916610100600160a060020a03851602179055600161417f607a8261524f565b50600161202a607b826152f5565b60b25490565b600080806001604060020a03841615156141b05760009250614254565b6141b984613622565b60028101549092506141d3906001604060020a03166135dc565b90506000815460ff1660028111156141e757fe5b14156141f557839250614254565b6002815460ff16600281111561420757fe5b1461420e57fe5b6002820154614225906001604060020a0316611144565b151561423357839250614254565b60028201546142519060c060020a90046001604060020a0316614193565b92505b5050919050565b60008060028351600281111561426d57fe5b1461427457fe5b82606001516001604060020a0316151561429157600191506111e0565b61429e83606001516135dc565b90506142c5816101006040519081016040528154909190829060ff16600281111561227d57fe5b6001019392505050565b6142d76151f1565b6142e982600160a060020a0316614cb1565b92915050565b6142f76151f1565b6142e982614cb1565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156143cc57600080fd5b6102c65a03f115156143dd57600080fd5b50505060405180519250829150505b5090565b806143fe8585808685614cf8565b905061272e8584868685614cf8565b60008061441985613622565b915061445a83600060405180591061442e5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613653565b9050611134858286613975565b600080600061447586613622565b9250601461459e846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144d25790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b600281111561459657fe5b905250614e60565b106145a857600080fd5b6145b184611144565b156145bb57600080fd5b6002830154600184018054614658926001604060020a03169190602080820201604051908101604052809291908181526020018280548015611c2657600091825260209182902080546001604060020a03168452908202830192909160089101808411611be35750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613653565b9150614698846000604051805910611c855750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613653565b9050612f8b868287613975565b6000805b8360200151518110156146f957826001604060020a0316846020015182815181106146d057fe5b906020019060200201516001604060020a031614156146f157809150614704565b6001016146a9565b6001604060020a0391505b5092915050565b6000806147166151f1565b600061472187613622565b60018101549093508590036040518059106147395750595b90808252806020026020018201604052509150600090505b60018301548590038110156147c4576001830180548290811061477057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106147a557fe5b6001604060020a03909216602092830290910190910152600101614751565b600283015460038401546147fe916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613653565b935061480b878588613975565b5050509392505050565b600061481f6151f1565b60008061482b87613622565b6001810154909450600a901061484057600080fd5b600180850154016040518059106148545750595b90808252806020026020018201604052509250600091505b60018401548210156148df576001840180548390811061488857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106148bd57fe5b6001604060020a0390921660209283029091019091015260019091019061486c565b600184015485908490815181106148f257fe5b6001604060020a03928316602091820290920101526002850154600386015461493892828116928792600092839260c060020a90041690600160a060020a031682613653565b9050611a95878288613975565b60008061495185613622565b91506014614a3c836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b10614a4657600080fd5b614a4f83611144565b15614a5957600080fd5b600282015460018301805461445a926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614aec57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614aa95790505b505050505085614c178661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b8e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614b4b5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614c0457fe5b6002811115614c0f57fe5b905250614f76565b6001604060020a0316614c2861418d565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613653565b60035415614c6557600080fd5b614c6d61500e565b600160a060020a0381161515614c8257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614cb96151f1565b6001604051805910614cc85750595b908082528060200260200182016040525090508181600081518110614ce957fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614d1f57610100614d22565b60005b61ffff169250849350614d3488613622565b60028101546003820154919350614d66918b916001604060020a0316908a908a908890600160a060020a03168a615028565b9350600090505b60018201546001604060020a0382161015614df957614def8983600101836001604060020a0316815481101515614da057fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a615028565b9350600101614d6d565b60028201546000604060020a9091046001604060020a03161115614e545760028201546003830154614e51918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a615028565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614e8057600091506111e0565b614e8d8360a00151613622565b90506142c5816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561451557600091825260209182902080546001604060020a031684529082028301929091600891018084116144d2575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561458b57fe5b6000806000614f8884604001516135dc565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561425457614fd284602001518281518110614fc357fe5b906020019060200201516135dc565b80549092506001604060020a0380851660a860020a90920416111561500657815460a860020a90046001604060020a031692505b600101614fa3565b6003541561501b57600080fd5b6150236151ed565b600355565b80600080615035896135dc565b600181015490915069010000000000000000009004600160a060020a0316158015906150615750600083115b1561396857891561513957600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561510857600080fd5b6102c65a03f1151561511957600080fd5b50505060405180519250508282111561513157600080fd5b819250613968565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b15156151cc57600080fd5b6102c65a03f115156151dd57600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161521f6151f1565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161202a5760040281600402836000526020600020918201910161202a91906153d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152bc57805160ff19168380011785556152e9565b828001600101855582156152e9579182015b828111156152e95782518255916020019190600101906152ce565b506143ec92915061543c565b81548183558181151161202a5760040281600402836000526020600020918201910161202a9190615456565b828054828255906000526020600020906003016004900481019282156153c95791602002820160005b8382111561539457835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261534a565b80156153c75782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615394565b505b506143ec9291506154a6565b61121091905b808211156143ec5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061542560028301826154cb565b6154336003830160006154cb565b506004016153db565b61121091905b808211156143ec5760008155600101615442565b61121091905b808211156143ec576000808255615476600183018261550f565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161545c565b61121091905b808211156143ec57805467ffffffffffffffff191681556001016154ac565b50805460018160011615610100020316600290046000825580601f106154f15750612d72565b601f016020900490600052602060002090810190612d72919061543c565b508054600082556003016004900490600052602060002090810190612d72919061543c5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820e29dd3ce2c5d693a370386be72fa21107ae5f9a2c9edf20a679de865ed833d070029", - "sourceMap": "1086:825:8:-;;;;;;;;;-1:-1:-1;;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1339:359:5;;;;;;;;;;-1:-1:-1;;;;;1339:359:5;;;-1:-1:-1;;;;;1339:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;-1:-1:-1;;;;;11553:482:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;5348:455:5;;;;;;;;;;-1:-1:-1;;;;;5348:455:5;;;;;;;2790:397:7;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;-1:-1:-1;;;;;2790:397:7;;;;-1:-1:-1;;;;;2790:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226:9;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;1903:611:12;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687:5;;;;;;;;;;-1:-1:-1;;;;;4415:687:5;;;;;;;3857:235;;;;;;;;;;-1:-1:-1;;;;;3857:235:5;;;;;;;;;;;;;;;;;;1306:176:8;;;;;;;;;;-1:-1:-1;;;;;1306:176:8;;;;;;;;;;2273:927:5;;;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;;-1:-1:-1;;;;;2273:927:5;;;;;;;2126:450:9;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4196:1304:7;;;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;-1:-1:-1;;;;;4196:1304:7;;;;;;;;;;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;-1:-1:-1;;;;;4897:582:11;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;9903:103;;;;;;;;;;;;9383:287:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9383:287:5;;-1:-1:-1;9383:287:5;;-1:-1:-1;;;;;;9383:287:5;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;1167:166:5;;;;;;;;;;-1:-1:-1;;;;;1167:166:5;;;-1:-1:-1;;;;;1167:166:5;;;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;-1:-1:-1;;;;;2463:606:11;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;-1:-1:-1;;;;;7535:894:11;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;6799:220:5;;;;;;;;;;-1:-1:-1;;;;;6799:220:5;;;;;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;-1:-1:-1;;;;;2051:311:11;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;3298:121:0;;;;;;;;;;-1:-1:-1;;;;;3298:121:0;;;;;269:107:27;;;;;;;;;;;;9894:299:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9894:299:5;;-1:-1:-1;9894:299:5;;-1:-1:-1;;;;;;9894:299:5;158:103:31;;;;;;;;;;;;1139:21:8;;;;;;;;;;;;2416:624:0;;;;;;;;;;-1:-1:-1;;;;;2416:624:0;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1839:70:8;;;;;;;;;;;;;;7320:352:5;;;;;;;;;;-1:-1:-1;;;;;7320:352:5;;;;;;;1330:88:0;;;;;;;;;;;;1670:174:9;;;;;;;;;;;;;;1635:162:7;;;;;;;;;;-1:-1:-1;;;;;1635:162:7;;;;;1284:148:9;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;-1:-1:-1;;;;;6233:531:11;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;10865:164:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10865:164:5;;-1:-1:-1;10865:164:5;;-1:-1:-1;;;;;;10865:164:5;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;8680:380:5;;;;;;;;;;;;;-1:-1:-1;;;;;8680:380:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8680:380:5;;-1:-1:-1;;;8680:380:5;;-1:-1:-1;;;;;8680:380:5;;-1:-1:-1;8680:380:5;;-1:-1:-1;;8680:380:5;3709:511:11;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;-1:-1:-1;;;;;3709:511:11;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;6066:581:5;;;;;;;;;;-1:-1:-1;;;;;6066:581:5;;;;;;;10774:572:11;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10415:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10415:297:5;;-1:-1:-1;10415:297:5;;-1:-1:-1;;;;;;10415:297:5;1536:37:0;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;-1:-1:-1;;;;;9133:520:11;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;1339:359:5;1558:14;-1:-1:-1;;;;;1472:17:5;;;;1464:26;;;;;;1575:64;1584:12;1575:64;;;;;;;;;;;;;;;;;;;;;;;;;1606:6;;1575:8;:64::i;:::-;1558:81;;1649:42;1656:7;1665:10;1677:5;1684:6;1649;:42::i;:::-;1339:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;-1:-1:-1;;;11857:10:11;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;-1:-1:-1;;;;;11918:15:11;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;-1:-1:-1;;;;;12012:15:11;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;;:::o;5348:455:5:-;1556:5:7;;5429:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;5448:21:5;5460:8;5448:11;:21::i;:::-;5429:40;-1:-1:-1;5505:18:5;5488:13;;;;-1:-1:-1;;;5488:13:5;;;;:35;;;;;;;;;5480:44;;;;;;5589:7;;;;;5610:17;;5556:187;;;;-1:-1:-1;;;;;5589:7:5;;5610:17;5556:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5556:187:5;-1:-1:-1;;;;;5556:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5671:11:5;;;;;5696:7;;;;5641:1;;-1:-1:-1;5641:1:5;;-1:-1:-1;;;5671:11:5;;;-1:-1:-1;;;;;5671:11:5;;-1:-1:-1;;;;;5696:7:5;;;;5556:19;:187::i;:::-;5535:208;;5754:42;5766:8;5776:11;5789:6;5754:11;:42::i;:::-;5348:455;;;;:::o;2790:397:7:-;2883:17;2910:12;2932:11;;:::i;:::-;2960:16;3067:28;2979:21;2991:8;2979:11;:21::i;:::-;2960:40;;3023:1;:17;;3055:1;3041:11;:15;-1:-1:-1;;;;;3023:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3023:34:7;3010:47;;3098:22;3109:10;3098;:22::i;:::-;3067:53;;3137:8;:13;;;;;;;;;;-1:-1:-1;;;;;3137:13:7;3130:20;;3167:8;:13;;3160:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:397;;;;;;;:::o;1438:226:9:-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;1994:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;1903:611:12:-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;4415:687:5:-;4551:16;4691:18;4965:25;4491;4507:8;4491:15;:25::i;:::-;4480:36;;4570:21;4582:8;4570:11;:21::i;:::-;4551:40;-1:-1:-1;4626:19:5;4609:13;;;;-1:-1:-1;;;4609:13:5;;;;:36;;;;;;;;;4601:45;;;;;;4672:7;;;;4656:24;;-1:-1:-1;;;;;4672:7:5;4656:15;:24::i;:::-;4745:7;;;;;4766:17;;4712:189;;;;-1:-1:-1;;;;;4745:7:5;;4766:17;4712:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4712:189:5;-1:-1:-1;;;;;4712:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4827:11:5;;;;4852:7;;;;4797:1;;-1:-1:-1;4797:1:5;;-1:-1:-1;;;4827:11:5;;-1:-1:-1;;;;;4827:11:5;;-1:-1:-1;;;;;4852:7:5;;4712:19;:189::i;:::-;4691:210;;4912:42;4924:8;4934:11;4947:6;4912:11;:42::i;:::-;5004:7;;;;4993:19;;-1:-1:-1;;;;;5004:7:5;4993:10;:19::i;:::-;5022:5;;5067:10;;5079:7;;;;4965:47;;-1:-1:-1;;;;;;5022:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5045:20:5;;;5067:10;;;;5079:7;5088:6;5022:73;;-1:-1:-1;;;5022:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5022:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:687;;;;;:::o;3857:235::-;4001:25;4017:8;4001:15;:25::i;:::-;4036:49;4046:8;4056;4066:6;4074:10;4036:9;:49::i;1306:176:8:-;140:19:27;;:24;132:33;;;;;;1401:49:8;1418:6;1426:23;1401:16;:49::i;:::-;-1:-1:-1;;1472:3:8;1460:9;:15;1306:176::o;2273:927:5:-;2537:26;;;-1:-1:-1;;;;;2389:11:5;;;;;2381:20;;;;;;2493:1;2484:10;;2476:19;;;;;;-1:-1:-1;;;;;2513:12:5;;;;2505:21;;;;;;2566:19;2577:7;2566:10;:19::i;:::-;2537:48;-1:-1:-1;2623:21:5;2603:16;;;;:41;;;;;;;;;2595:50;;;;;;2710:5;;-1:-1:-1;;;;;2664:25:5;;;;;;2690:10;;2710:5;;;;2718:6;2664:61;;;;;;;;-1:-1:-1;;;2664:61:5;;;;;;-1:-1:-1;;;;;2664:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2656:70;;;;;;;;2792:219;2825:7;2859:1;2846:15;;;;;;;;;;;;;;;;;;;;;;;;2918:1;2933;2948;2963:5;2982:19;2792;:219::i;:::-;2774:237;;3043:21;3055:8;3043:11;:21::i;:::-;3074:20;;;;;;3022:42;-1:-1:-1;;;;;;3105:29:5;;3074:10;3105:29;3088:6;3105:29;;;;;;;;;;;;;;3145:48;3155:7;3164:8;3174:6;3182:10;3145:9;:48::i;:::-;2273:927;;;;;;;:::o;2126:450:9:-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4196:1304:7:-;4253:6;4271:16;4669;4924:15;4290:21;4302:8;4290:11;:21::i;:::-;4271:40;-1:-1:-1;4457:19:7;4440:13;;;;-1:-1:-1;;;4440:13:7;;;;:36;;;;;;;;;4436:82;;4499:8;4492:15;;;;4436:82;4599:17;;;;4619:1;-1:-1:-1;;;4599:17:7;;;-1:-1:-1;;;;;4599:17:7;:21;4598:55;;;;-1:-1:-1;4640:12:7;;;;-1:-1:-1;;;4640:12:7;;-1:-1:-1;;;;;4640:12:7;4627:10;:8;:10::i;:::-;:25;4598:55;4594:714;;;4725:7;;;;;4750:17;;4688:222;;;;-1:-1:-1;;;;;4725:7:7;;4750:17;4688:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4688:222:7;-1:-1:-1;;;;;4688:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4823:11:7;;;;4852:7;;;;4785:1;;-1:-1:-1;4785:1:7;;-1:-1:-1;;;4823:11:7;;-1:-1:-1;;;;;4823:11:7;;-1:-1:-1;;;;;4852:7:7;4785:1;4688:19;:222::i;:::-;4979:17;;;;4669:241;;-1:-1:-1;4942:228:7;;-1:-1:-1;;;4979:17:7;;-1:-1:-1;;;;;4979:17:7;5027:1;5014:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5112:7:7;;;;5047:1;;;;5085:9;;-1:-1:-1;;;;;5112:7:7;5047:1;4942:19;:228::i;:::-;4924:246;;5184:41;5196:8;5206;5216:1;:8;;;5184:11;:41::i;:::-;5250:8;5239:19;;5276:21;5288:8;5276:11;:21::i;:::-;5272:25;;4594:714;5329:37;5357:8;5329:27;:37::i;:::-;5318:48;-1:-1:-1;;;;;;5380:20:7;;;;;;;5376:92;;5416:41;5428:8;5438;5448:1;:8;;;5416:11;:41::i;:::-;5485:8;5478:15;;4196:1304;;;;;;;:::o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;-1:-1:-1;;;;;5207:219:11;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;-1:-1:-1;;;;;5447:25:11;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;:::o;9383:287:5:-;9447:6;;;9442:222;9463:14;:21;9459:1;:25;9442:222;;;-1:-1:-1;;;;;9532:14:5;9547:1;9532:14;:17;;;;;;;;;;;;;;;:27;9506:55;;-1:-1:-1;;;9589:14:5;9604:1;9589:17;;;;;;;;;;;;;;;;:23;;;;;;;;9575:37;;9627:26;9636:8;9646:6;9627:8;:26::i;:::-;9486:3;;;;;9442:222;;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;1167:166:5:-;1270:56;1288:10;1300;1312:5;1319:6;1270:17;:56::i;:::-;1167:166;;;:::o;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;-1:-1:-1;;;;;2812:210:11;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;-1:-1:-1;;;;;3043:19:11;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;-1:-1:-1;;;;;7821:18:11;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8013:42:11;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;-1:-1:-1;;;;;8399:23:11;;;;;;;;;;;7535:894;;;;;;;;;:::o;6799:220:5:-;6857:27;6887:21;6898:9;6887:10;:21::i;:::-;6857:51;;6918:26;6934:9;6918:15;:26::i;:::-;6973:4;6954:16;;:23;;-1:-1:-1;;6954:23:5;-1:-1:-1;;;6954:23:5;;;-1:-1:-1;;;;;6988:24:5;;;;;;;;;;;;6799:220;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;3298:121:0:-;-1:-1:-1;;;;;3389:23:0;3365:4;3389:23;;;:15;:23;;;;;;;;3388:24;;3298:121::o;269:107:27:-;350:19;;269:107;:::o;9894:299:5:-;9964:6;;;9959:228;9980:14;:21;9976:1;:25;9959:228;;;-1:-1:-1;;;;;10049:14:5;10064:1;10049:14;:17;;;;;;;;;;;;;;;:27;10023:55;;-1:-1:-1;;;10106:14:5;10121:1;10106:17;;;;;;;;;;;;;;;;:23;;;;;;;;10092:37;;10144:32;10159:8;10169:6;10144:14;:32::i;:::-;10003:3;;;;;9959:228;;158:103:31;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;1139:21:8:-;;;;:::o;2416:624:0:-;2565:15;2855:11;1381:37;;;;;;;;;;;;;;2492:11;2496:6;2492:3;:11::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2523:23:0;;;;;;:15;:23;;;;;;;;:30;2515:39;;;;;;-1:-1:-1;;;;;2628:13:0;;;2624:188;;;2693:22;;-1:-1:-1;;;;;2667:4:0;:12;;;;-1:-1:-1;2693:22:0;:40;;;;2667:12;2693:40;;;;;;;;;;;;;;;;;;;;;;;;;;2747:34;2765:6;2773:7;2747:34;;-1:-1:-1;;;;;2747:34:0;;;;;;;;;;;;;;;;;;;;2795:7;;2624:188;2875:6;2855:27;;2902:5;-1:-1:-1;;;;;2902:15:0;;2918:4;2902:21;;;;;;;;-1:-1:-1;;;2902:21:0;;;;;;-1:-1:-1;;;;;2902:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:22;;2902:21;;-1:-1:-1;;;;;;2941:14:0;;;;-1:-1:-1;2941:14:0;;2956:22;2902:21;2956:22;2941:47;;;;;;;-1:-1:-1;;;2941:47:0;;;;;;-1:-1:-1;;;;;2941:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:56;;;;;;;;2999:34;3017:6;3025:7;2999:34;;-1:-1:-1;;;;;2999:34:0;;;;;;;;;;;;;;;;;;;;2416:624;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1839:70:8:-;1888:9;:14;1839:70::o;7320:352:5:-;7436:16;7556;7400:25;7416:8;7400:15;:25::i;:::-;7389:36;;7455:21;7467:8;7455:11;:21::i;:::-;7494:11;;;;;;-1:-1:-1;;;;7494:11:5;;-1:-1:-1;;;;;7494:11:5;:16;;7486:25;;;;;;7537:7;;;;7521:24;;-1:-1:-1;;;;;7537:7:5;7521:15;:24::i;:::-;7603:11;;;;7575:40;;-1:-1:-1;;;7603:11:5;;-1:-1:-1;;;;;7603:11:5;7575:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1635:162:7:-;140:19:27;;:24;132:33;;;;;1714:14:7;1635:162;:::o;1284:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;-1:-1:-1;;;;;6684:35:11;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;10865:164:5:-;10931:6;10926:97;10947:7;:14;10943:1;:18;10926:97;;;10983:29;11000:7;11008:1;11000:10;;;;;;;;;;;;;;;;10983:15;:29::i;:::-;-1:-1:-1;10963:3:5;;10926:97;;;10865:164;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;8680:380:5:-;8815:6;;;8810:244;8831:14;:21;8827:1;:25;8810:244;;;-1:-1:-1;;;;;8900:14:5;8915:1;8900:14;:17;;;;;;;;;;;;;;;:27;8874:55;;-1:-1:-1;;;8957:14:5;8972:1;8957:17;;;;;;;;;;;;;;;;:23;;;;;;;;8943:37;;8995:48;9004:8;9014;9024:6;9032:10;8995:8;:48::i;:::-;8854:3;;;;;8810:244;;;8680:380;;;;;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;-1:-1:-1;;;;;4149:32:11;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;6066:581:5:-;1556:5:7;;6146:16:5;;;;1534:10:7;-1:-1:-1;;;;;1534:28:7;;;1556:5;;;;;1534:28;1526:37;;;;;;6165:21:5;6177:8;6165:11;:21::i;:::-;6146:40;-1:-1:-1;6222:18:5;6205:13;;;;-1:-1:-1;;;6205:13:5;;;;:35;;;;;;;;;6197:44;;;;;;6377:7;;;;;6398:17;;6344:190;;;;-1:-1:-1;;;;;6377:7:5;;6398:17;6344:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6344:190:5;-1:-1:-1;;;;;6344:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6459:11:5;;;;6484:7;;;;6429:1;;-1:-1:-1;6429:1:5;;-1:-1:-1;;;6459:11:5;;-1:-1:-1;;;;;6459:11:5;;-1:-1:-1;;;;;6484:7:5;6429:1;6344:19;:190::i;:::-;6323:211;;6559:28;6575:11;6559:15;:28::i;10774:572:11:-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;-1:-1:-1;;;;;11219:12:11;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;;;;11293:10:11;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;10415:297:5:-;10484:6;;;10479:227;10500:14;:21;10496:1;:25;10479:227;;;-1:-1:-1;;;;;10569:14:5;10584:1;10569:14;:17;;;;;;;;;;;;;;;:27;10543:55;;-1:-1:-1;;;10626:14:5;10641:1;10626:17;;;;;;;;;;;;;;;;:23;;;;;;;;10612:37;;10664:31;10678:8;10688:6;10664:13;:31::i;:::-;10523:3;;;;;10479:227;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9133:520:11:-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;-1:-1:-1;;;;;9576:34:11;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;-1:-1:-1;;;;;12371:23:11;;;12363:32;;;;;;12412:6;:15;;-1:-1:-1;;;;;12412:15:11;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;4554::12:-;4659:7;:14;4614:6;;-1:-1:-1;;;;;4648:25:12;;;4640:34;;;;;;4691:7;:17;;-1:-1:-1;;;;;4691:17:12;;;;;;;;3613:842;3857:6;3879:15;3994:9;3907:15;3924:5;3931:15;3948:10;3960:9;3971:5;3978;3897:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4006:20:12;;;;-1:-1:-1;4040:6:12;;4036:46;;;4069:2;4062:9;;;;4036:46;-1:-1:-1;4104:7:12;:14;;4129:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4129:25:12;-1:-1:-1;;;;;4129:25:12;;;;;4164:265;;4104:14;;:7;-1:-1:-1;4164:265:12;;;4104:7;4164:265;;:::i;:::-;;;;;;;;;;;;4190:229;;;;;;;;;4214:1;4190:229;;;;4233:15;4190:229;;;;4266:5;-1:-1:-1;;;;;4190:229:12;;;;;4289:15;-1:-1:-1;;;;;4190:229:12;;;;;4322:10;-1:-1:-1;;;;;4190:229:12;;;;;4350:9;-1:-1:-1;;;;;4190:229:12;;;;;4377:5;-1:-1:-1;;;;;4190:229:12;;;;;4400:5;4190:229;;;;;;;;;;4164:265;;-1:-1:-1;4164:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4164:265:12;;;;;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;;;4164:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4164:265:12;-1:-1:-1;;;4164:265:12;;;;;;;;;;;;;;;;;4446:2;4439:9;;3613:842;;;;;;;;;;;;:::o;17446:534:7:-;17524:11;17699:20;17749:18;17538:37;17551:4;17557;17563:2;17567:7;17538:12;:37::i;:::-;17524:51;;17597:2;-1:-1:-1;;;;;17589:10:7;:4;-1:-1:-1;;;;;17589:10:7;;17585:47;;;17615:7;;17585:47;17645:11;;17641:48;;;17672:7;;17641:48;17722:17;17734:4;17722:11;:17::i;:::-;17699:40;;17770:15;17782:2;17770:11;:15::i;:::-;17804:12;;17749:36;;-1:-1:-1;17804:22:7;;;;17796:31;;;;;;17837:22;;;;;;;17869:20;;;;;;-1:-1:-1;;;;;17900:26:7;;;;;;;17853:6;17900:26;;;;;;;;;;;;;;17936:37;17949:5;17956:4;17962:2;17966:6;17936:12;:37::i;5741:193::-;5810:21;5834:19;5845:7;5834:10;:19::i;:::-;5893:8;;;;5810:43;;-1:-1:-1;5871:10:7;-1:-1:-1;;;;;5871:31:7;;;5893:8;;;;;5871:31;;:55;;-1:-1:-1;5920:6:7;;5906:10;-1:-1:-1;;;;;5906:20:7;;;5920:6;;;;;5906:20;5871:55;5863:64;;;;;;;5940:5495;6192:16;;;;;;-1:-1:-1;;;;;6095:14:7;;;;;6087:23;;;;;;6156:25;6172:8;6156:15;:25::i;:::-;6145:36;;6211:21;6223:8;6211:11;:21::i;:::-;6192:40;;6273:22;6284:10;6273;:22::i;:::-;6242:53;-1:-1:-1;6331:19:7;6314:13;;;;-1:-1:-1;;;6314:13:7;;;;:36;;;;;;;;;6306:45;;;;;;6418:7;;;;-1:-1:-1;;;;;6418:19:7;;;:7;;:19;6414:2102;;;6480:21;6458:18;;;;:43;;;;;;;;;6454:2032;;;6521:55;6547:8;6557:6;6565:10;6521:25;:55::i;:::-;6454:2032;;;6623:23;6601:18;;;;:45;;;;;;;;;6597:1889;;;6666:57;6694:8;6704:6;6712:10;6666:27;:57::i;6597:1889::-;6770:24;6748:18;;;;:46;;;;;;;;;6744:1742;;;6835:30;6851:1;6835:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;-1:-1:-1;;6835:30:7;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6835:30:7;;;;;;;;;;;-1:-1:-1;;;6835:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6854:10:7;6835:15;:30::i;:::-;6887:17;;;;-1:-1:-1;;;;;6815:50:7;;;;-1:-1:-1;6907:1:7;-1:-1:-1;;;6887:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6912:24:7;;;6887:49;6883:1389;;;7251:1;7224:17;;:24;-1:-1:-1;;7224:28:7;7208:44;;7204:604;;;7347:7;;;;;7384:17;;7298:293;;;;-1:-1:-1;;;;;7347:7:7;;7384:17;7298:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7298:293:7;-1:-1:-1;;;;;7298:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7493:11:7;;;;7534:7;;;;7431:1;;-1:-1:-1;7431:1:7;;-1:-1:-1;;;7493:11:7;;-1:-1:-1;;;;;7493:11:7;;-1:-1:-1;;;;;7534:7:7;7431:1;7298:19;:293::i;:::-;7280:311;;7617:39;7629:8;7639;7649:6;7617:11;:39::i;:::-;7204:604;;;7711:74;7723:8;7733:6;7783:1;7768:12;7741:1;:17;;:24;;;;:39;:43;7711:11;:74::i;:::-;;7204:604;6883:1389;;;8037:149;8074:8;8108:6;8140:1;:17;;:24;;;;8037:11;:149::i;:::-;8026:160;;8208:45;8224:8;8234:6;8242:10;8208:15;:45::i;6744:1742::-;8458:13;;8499:7;;6414:2102;8583:28;8599:1;8583:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;-1:-1:-1;;8583:28:7;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8583:28:7;;;;;;;;;;;-1:-1:-1;;;8583:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8602:8:7;8583:15;:28::i;:::-;-1:-1:-1;;;;;8565:46:7;;;;-1:-1:-1;8625:22:7;;8621:2735;;8739:21;8717:18;;;;:43;;;;;;;;;8713:274;;;8853:7;;;;-1:-1:-1;;;;;8853:21:7;;;:7;;:21;8846:29;;;;8893:55;8905:8;8915:6;8923:1;:17;;:24;;;;8893:11;:55::i;:::-;;8966:7;;8713:274;9079:24;9057:18;;;;:46;;;;;;;;;9053:1785;;;9143:30;9159:1;9143:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;-1:-1:-1;;;9143:30:7;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9143:30:7;;;;;;;;;;;-1:-1:-1;;;9143:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9123:50:7;;;;-1:-1:-1;9246:24:7;;9242:1558;;;9305:166;9342:8;9376:6;9448:1;9435:10;9408:1;:17;;:24;;;;:37;:41;9305:11;:166::i;9242:1558::-;9823:10;9808:12;:25;9804:996;;;9868:166;9905:8;9939:6;10011:1;9998:10;9971:1;:17;;:24;;;;:37;:41;9868:11;:166::i;9804:996::-;10361:26;;;10357:443;;10613:168;10650:8;10684:6;10758:1;10743:12;10716:1;:17;;:24;;;;:39;:43;10613:11;:168::i;9053:1785::-;11034:23;11012:18;;;;:45;;;;;;;;;11008:338;;;11088:150;11121:8;11151:6;11219:1;11206:10;11179:1;:17;;:24;;;;:37;:41;11088:11;:150::i;:::-;11077:161;;11256:51;11278:8;11288:6;11296:10;11256:21;:51::i;11365:13::-;5940:5495;;;;;;;;;;:::o;2143:319::-;140:19:27;;:24;132:33;;;;;;2238:41:7;2255:23;2238:16;:41::i;:::-;-1:-1:-1;;;;;2297:13:7;;;;2289:22;;;;;;2322:5;:24;;-1:-1:-1;;;;;;2322:24:7;;-1:-1:-1;;;;;2322:24:7;;;;;;-1:-1:-1;2357:17:7;:6;-1:-1:-1;2357:17:7;:::i;:::-;-1:-1:-1;2427:1:7;2410:18;:7;2427:1;2410:18;:::i;1575:82:8:-;1641:9;;1575:82;:::o;18963:583:7:-;19053:6;;;-1:-1:-1;;;;;19079:13:7;;;19075:52;;;19115:1;19108:8;;;;19075:52;19156:21;19168:8;19156:11;:21::i;:::-;19226:7;;;;19137:40;;-1:-1:-1;19215:19:7;;-1:-1:-1;;;;;19226:7:7;19215:10;:19::i;:::-;19187:47;-1:-1:-1;19276:21:7;19257:15;;;;:40;;;;;;;;;19253:86;;;19320:8;19313:15;;;;19253:86;19375:23;19356:15;;;;:42;;;;;;;;;19349:50;;;;19432:7;;;;19414:26;;-1:-1:-1;;;;;19432:7:7;19414:17;:26::i;:::-;19413:27;19409:73;;;19463:8;19456:15;;;;19409:73;19527:11;;;;19499:40;;-1:-1:-1;;;19527:11:7;;-1:-1:-1;;;;;19527:11:7;19499:27;:40::i;:::-;19492:47;;18963:583;;;;;;:::o;12650:311:11:-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;-1:-1:-1;;;;;12787:20:11;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;354:101:18:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:18;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:18:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;24597:649:7:-;24788:6;24873:145;24905:6;24925:10;;24973:8;24788:6;24873:18;:145::i;:::-;24857:161;;25096:143;25128:6;25148:8;25170:10;25194:8;25216:13;25096:18;:143::i;13269:444::-;13407:16;13458:15;13426:21;13438:8;13426:11;:21::i;:::-;13407:40;;13476:181;13509:10;13546:1;13533:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13607:7:7;;;;13562:1;;;;;;-1:-1:-1;;;;;13607:7:7;13562:1;13476:19;:181::i;:::-;13458:199;;13667:39;13679:8;13689;13699:6;13667:11;:39::i;11870:989::-;12010:16;12291;12510:15;12029:21;12041:8;12029:11;:21::i;:::-;12010:40;;1143:2:11;12187:18:7;12203:1;12187:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;-1:-1:-1;;12187:18:7;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12187:18:7;;;;;;;;;;;-1:-1:-1;;;12187:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12187:15:7;:18::i;:::-;:43;12179:52;;;;;;12250:29;12268:10;12250:17;:29::i;:::-;12249:30;12241:39;;;;;;12343:7;;;;;12364:17;;12310:190;;;;-1:-1:-1;;;;;12343:7:7;;12364:17;12310:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12310:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12425:11:7;;;;12450:7;;;;12395:1;;-1:-1:-1;12395:1:7;;-1:-1:-1;;;;12425:11:7;;;-1:-1:-1;;;;;12425:11:7;;-1:-1:-1;;;;;12450:7:7;12395:1;12310:19;:190::i;:::-;12291:209;;12528:275;12561:10;12639:1;12626:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12753:7:7;;;;12700:1;;;;12730:9;;-1:-1:-1;;;;;12753:7:7;12700:1;12528:19;:275::i;:::-;12510:293;;12813:39;12825:8;12835;12845:6;12813:11;:39::i;5220:290:12:-;5296:6;;5314:165;5335:1;:17;;;:24;5331:1;:28;5314:165;;;5408:10;-1:-1:-1;;;;;5384:34:12;:1;:17;;;5402:1;5384:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5384:34:12;;5380:89;;;5452:1;5438:16;;;;5380:89;5361:3;;5314:165;;;-1:-1:-1;;;;;5488:15:12;;5220:290;;;;;;:::o;15365:692:7:-;15472:15;15503:16;15553:34;;:::i;:::-;15670:6;15522:21;15534:8;15522:11;:21::i;:::-;15616:17;;;:24;15503:40;;-1:-1:-1;15616:28:7;;;15590:64;;;;;;;;;;;;;;;;;;;;;;;;15553:101;;15679:1;15670:10;;15665:125;15686:17;;;:24;:28;;;15682:32;;15665:125;;;15759:17;;;:20;;15777:1;;15759:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15759:20:7;15735:18;15754:1;15735:21;;;;;;;;-1:-1:-1;;;;;15735:44:7;;;:21;;;;;;;;;;:44;15716:3;;15665:125;;;15843:7;;;;15951;;;;15810:191;;-1:-1:-1;;;;;15843:7:7;;;;15864:18;;15843:7;;;;-1:-1:-1;;;15926:11:7;;;;;-1:-1:-1;;;;;15951:7:7;15843;15810:19;:191::i;:::-;15799:202;;16011:39;16023:8;16033;16043:6;16011:11;:39::i;:::-;15365:692;;;;;;;;:::o;14071:871::-;14199:16;14309:34;;:::i;:::-;14425:6;14677:15;14218:21;14230:8;14218:11;:21::i;:::-;14258:17;;;:24;14199:40;;-1:-1:-1;1085:2:12;14258:40:7;;14250:49;;;;;;14372:17;;;;:24;:28;14346:64;;;;;;;;;;;;;;;;;;;;;;;;14309:101;;14434:1;14425:10;;14420:121;14441:17;;;:24;14437:28;;14420:121;;;14510:17;;;:20;;14528:1;;14510:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14510:20:7;14486:18;14505:1;14486:21;;;;;;;;-1:-1:-1;;;;;14486:44:7;;;:21;;;;;;;;;;:44;14467:3;;;;;14420:121;;;14628:17;;;:24;14656:10;;14609:18;;;:44;;;;;;;-1:-1:-1;;;;;14609:57:7;;;:44;;;;;;;;:57;14728:7;;;;14836;;;;14695:191;;14728:7;;;;14749:18;;14728:7;;;;-1:-1:-1;;;14811:11:7;;;;-1:-1:-1;;;;;14836:7:7;14728;14695:19;:191::i;:::-;14677:209;;14896:39;14908:8;14918;14928:6;14896:11;:39::i;16483:607::-;16617:16;16780:15;16636:21;16648:8;16636:11;:21::i;:::-;16617:40;;1143:2:11;16676:18:7;16692:1;16676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;-1:-1:-1;;;16676:18:7;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16676:18:7;;;;;;;;;;;-1:-1:-1;;;16676:18:7;;;;;;;;;;;;:43;16668:52;;;;;;16739:29;16757:10;16739:17;:29::i;:::-;16738:30;16730:39;;;;;;16831:7;;;;;16852:17;;16798:236;;;;-1:-1:-1;;;;;16831:7:7;;16852:17;16798:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16798:236:7;-1:-1:-1;;;;;16798:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16883:10;16927:17;16942:1;16927:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;-1:-1:-1;;16927:17:7;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16927:17:7;;;;;;;;;;;-1:-1:-1;;;16927:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16927:14:7;:17::i;:::-;-1:-1:-1;;;;;16914:30:7;:10;:8;:10::i;:::-;16959:11;;;;16984:7;;;;16914:30;;;;;-1:-1:-1;;;16959:11:7;;-1:-1:-1;;;;;16959:11:7;;-1:-1:-1;;;;;16984:7:7;;16798:19;:236::i;2001:207:0:-;140:19:27;;:24;132:33;;;;;;2080:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;2111:30:0;;;;2103:39;;;;;;2153:22;:48;;-1:-1:-1;;2153:48:0;-1:-1:-1;;;;;2153:48:0;;;;;;;;;;2001:207::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;22510:1549:7:-;22681:18;22818:13;22908:16;23260:8;22846:10;-1:-1:-1;;;;;22834:22:7;:8;-1:-1:-1;;;;;22834:22:7;;:32;;22863:3;22834:32;;;22859:1;22834:32;22818:48;;;;22892:6;22876:22;;22927:21;22939:8;22927:11;:21::i;:::-;23067:7;;;;23154;;;;22908:40;;-1:-1:-1;23022:176:7;;23047:6;;-1:-1:-1;;;;;23067:7:7;;23088:10;;23112:8;;23134:6;;-1:-1:-1;;;;;23154:7:7;23175:13;23022:11;:176::i;:::-;23006:192;;23271:1;23260:12;;23255:324;23278:17;;;:24;-1:-1:-1;;;;;23274:28:7;;;23255:324;;;23339:229;23368:6;23392:1;:17;;23410:1;-1:-1:-1;;;;;23392:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23392:20:7;23430:10;23458:8;23493:1;23484:6;:10;23497:1;23484:14;23516:1;:7;;;;;;;;;;-1:-1:-1;;;;;23516:7:7;23541:13;23339:11;:229::i;:::-;23323:245;-1:-1:-1;23304:3:7;;23255:324;;;23765:17;;;;23785:1;-1:-1:-1;;;23765:17:7;;;-1:-1:-1;;;;;23765:17:7;:21;23761:292;;;23871:17;;;;23990:7;;;;23818:224;;23847:6;;-1:-1:-1;;;23871:17:7;;;-1:-1:-1;;;;;23871:17:7;;23906:10;;23934:8;;23969:3;23960:12;;;-1:-1:-1;;;;;23990:7:7;24015:13;23818:11;:224::i;:::-;23802:240;;23761:292;22510:1549;;;;;;;;;;:::o;5755:249:12:-;5812:4;5892:19;5832:1;:11;;;-1:-1:-1;;;;;5832:16:12;;5828:55;;;5871:1;5864:8;;;;5828:55;5914:24;5926:1;:11;;;5914;:24::i;:::-;5892:46;;5955:21;5971:4;5955:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;-1:-1:-1;;;5955:21:12;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5955:21:12;;;;;;;;;;;-1:-1:-1;;;5955:21:12;;;;;;;;;;;18233:513:7;18289:17;18318:21;18449:6;18342:19;18353:1;:7;;;18342:10;:19::i;:::-;18384:12;;-1:-1:-1;;;18384:12:7;;-1:-1:-1;;;;;18384:12:7;;-1:-1:-1;18384:12:7;-1:-1:-1;18384:12:7;;-1:-1:-1;18444:296:7;18465:1;:17;;;:24;18461:1;:28;18444:296;;;18514:32;18525:1;:17;;;18543:1;18525:20;;;;;;;;;;;;;;;;18514:10;:32::i;:::-;18645:12;;18510:36;;-1:-1:-1;;;;;;18645:25:7;;;-1:-1:-1;;;18645:12:7;;;;:25;18641:89;;;18703:12;;-1:-1:-1;;;18703:12:7;;-1:-1:-1;;;;;18703:12:7;;-1:-1:-1;18641:89:7;18491:3;;18444:296;;487:96:27;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;20517:1287:7:-;20802:6;20727:18;;20846:19;20857:7;20846:10;:19::i;:::-;20969:12;;;;;;-1:-1:-1;20969:12:7;;;-1:-1:-1;;;;;20969:12:7;20961:26;;;;:47;;;21007:1;20991:13;:17;20961:47;20957:841;;;21161:6;21157:631;;;21199:12;;;;;;;-1:-1:-1;;;;;21199:12:7;:27;21248:7;21277:10;21309:8;21339:7;21368:5;21395:6;21199:220;;;;;;;;-1:-1:-1;;;21199:220:7;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21199:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21445:26:7;;;;21437:35;;;;;;21506:9;21490:25;;21157:631;;;21554:12;;;;;;;-1:-1:-1;;;;;21554:12:7;:26;21602:7;21631:10;21663:8;21693:7;21722:5;21749:6;21554:219;;-1:-1:-1;;;21554:219:7;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21554:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21554:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20517:1287;;;;;;;;;;;:::o;767:94:27:-;842:12;767:94;:::o;1086:825:8:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:825:8;;;-1:-1:-1;1086:825:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:825:8;;;;;-1:-1:-1;;;;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:825:8;;;-1:-1:-1;1086:825:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1086:825:8;;;;;;;;;;-1:-1:-1;;1086:825:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:825:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + "object": "60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029", + "sourceMap": "1086:946:8:-;;;;;;;;;-1:-1:-1;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359:5;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:478:11;;;;;;;;;;-1:-1:-1;;;;;11568:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;1427:176:8;;;;;;;;;;-1:-1:-1;;;;;1427:176:8;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4902:584:11;;;-1:-1:-1;;;;;4902:584:11;;;;;9918:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2465:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2465:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2465:606:11;;-1:-1:-1;;;2465:606:11;;-1:-1:-1;;;;;2465:606:11;;;;;-1:-1:-1;;;;;2465:606:11;;-1:-1:-1;2465:606:11;;-1:-1:-1;;2465:606:11;7545:896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:896:11;;;;;-1:-1:-1;;;;;7545:896:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2051:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2051:313:11;;;-1:-1:-1;;;;;2051:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;1139:21:8;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1960:70:8;;;;;;;;;;;;;;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6240:534:11;;;;;;;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3711:514:11;;;;;;;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10787:574:11;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9145:523:11;;;;;;;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11568:478:11:-;11642:4;11662:21;11686;11697:9;11686:10;:21::i;:::-;11662:45;-1:-1:-1;11737:21:11;11722:11;;;;:36;;;;;;;;;11718:79;;;11781:5;11774:12;;;;11718:79;11829:23;11814:11;;;;:38;;;;;;;;;11807:46;;;;11868:10;;;;-1:-1:-1;;;11868:10:11;;;;11864:52;;;11901:4;11894:11;;;;11864:52;11929:15;;;;-1:-1:-1;;;;;11929:15:11;:20;11925:63;;;11972:5;11965:12;;;;11925:63;12023:15;;;;12005:34;;-1:-1:-1;;;;;12023:15:11;12005:17;:34::i;:::-;11998:41;;11568:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;1427:176:8:-;140:19:26;;:24;132:33;;;;;;1522:49:8;1539:6;1547:23;1522:16;:49::i;:::-;-1:-1:-1;;1593:3:8;1581:9;:15;1427:176::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4902:584:11:-;5053:17;5095:21;5109:6;5095:13;:21::i;:::-;5087:30;;;;;;;;-1:-1:-1;5164:6:11;:13;;;;5189:254;;;;5164:6;5189:254;;:::i;:::-;;;;;;;;;;;;5214:219;;;;;;;;;5243:24;5214:219;;;;5285:10;-1:-1:-1;;;;;5214:219:11;;;;;5313:10;-1:-1:-1;;;;;5214:219:11;;;;;5341:1;-1:-1:-1;;;;;5214:219:11;;;;;5360:5;5214:219;;;;;;5383:6;-1:-1:-1;;;;;5214:219:11;;;;;5407:4;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:3;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5214:219:11;;;;-1:-1:-1;5189:254:11;;;-1:-1:-1;5189:254:11;;-1:-1:-1;;5189:254:11;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;-1:-1:-1;;;;;;5189:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;;;;;;;;;;5189:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5468:10;-1:-1:-1;;;;;5454:25:11;;;;;;;;;;;4902:584;;;;;;;;:::o;9918:101::-;9995:6;:13;-1:-1:-1;;9995:17:11;9918:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;:::-;1281:166;;;:::o;2465:606:11:-;2633:14;2671:21;2685:6;2671:13;:21::i;:::-;2663:30;;;;;;;;-1:-1:-1;2737:6:11;:13;;;;2789:245;;;;2737:6;2789:245;;:::i;:::-;;;;;;;;;;;;2814:210;;;;;;;;;2843:21;2814:210;;-1:-1:-1;;;;;2814:210:11;;;;;;;-1:-1:-1;;;;;2814:210:11;;;;;;-1:-1:-1;2814:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2789:245;;-1:-1:-1;2789:245:11;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;-1:-1:-1;;;;;;2789:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;;;;;;;;;;2789:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3056:7;-1:-1:-1;;;;;3045:19:11;;;;;;;;;;;2465:606;;;;;;;:::o;7545:896::-;7755:16;7867:21;7796;7810:6;7796:13;:21::i;:::-;7788:30;;;;;;;;-1:-1:-1;;;;;7833:18:11;;;7829:250;;7891:25;7902:13;7891:10;:25::i;:::-;7867:49;;1096:2;8025:19;8042:1;8025:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8025:42:11;;8017:51;;;;;;8108:6;:13;;;-1:-1:-1;8108:13:11;8133:267;;;;8108:6;8133:267;;:::i;:::-;;;;;;;;;;;;8158:232;;;;;;;;;8187:23;8158:232;;;;8228:12;-1:-1:-1;;;;;8158:232:11;;;;;8258:10;-1:-1:-1;;;;;8158:232:11;;;;;8286:13;-1:-1:-1;;;;;8158:232:11;;;;;8317:5;8158:232;;;;;;8340:6;-1:-1:-1;;;;;8158:232:11;;;;;8364:4;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:3;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8158:232:11;;;;-1:-1:-1;8133:267:11;;;-1:-1:-1;8133:267:11;;-1:-1:-1;;8133:267:11;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;-1:-1:-1;;;;;;8133:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;;;;;;;;;;8133:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8424:9;-1:-1:-1;;;;;8411:23:11;;;;;;;;;;;7545:896;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2051:313:11:-;2199:14;2236:121;2258:10;2282:4;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:3;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2317:10;2341:6;2236:8;:121::i;:::-;2229:128;2051:313;-1:-1:-1;;;;;;;2051:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;1139:21:8:-;;;;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1960:70:8:-;2009:9;:14;1960:70::o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6240:534:11:-;6423:28;6454:22;6465:10;6454;:22::i;:::-;6508:13;;6423:53;;-1:-1:-1;6494:10:11;-1:-1:-1;;;;;6494:27:11;;;6508:13;;;;;6494:27;6486:36;;;;;;6562:24;6540:18;;;;:46;;;;;;;;;6532:55;;;;;;6597:23;;-1:-1:-1;;;;;;6597:23:11;;-1:-1:-1;;;;;6597:23:11;;;;;;6630;:13;;;6646:7;;6630:23;:::i;:::-;-1:-1:-1;6663:21:11;:12;;;6678:6;;6663:21;:::i;:::-;-1:-1:-1;6694:35:11;;-1:-1:-1;;;;;6694:35:11;;;-1:-1:-1;;;6694:35:11;-1:-1:-1;;;;;;;;;;;6694:35:11;;;;;;;;;6740:27;;;;;;;;;;;;6240:534;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3711:514:11:-;3888:25;3916:19;3927:7;3916:10;:19::i;:::-;3967:10;;3888:47;;-1:-1:-1;3953:10:11;-1:-1:-1;;;;;3953:24:11;;;3967:10;;;;;3953:24;3945:33;;;;;;4015:21;3996:15;;;;:40;;;;;;;;;3988:49;;;;;;4066:20;;-1:-1:-1;;;;;;4066:20:11;;-1:-1:-1;;;;;4066:20:11;;;;;;4096;:10;;;4109:7;;4096:20;:::i;:::-;-1:-1:-1;4126:18:11;:9;;;4138:6;;4126:18;:::i;:::-;-1:-1:-1;4154:32:11;;-1:-1:-1;;;;;4154:32:11;;;-1:-1:-1;;;4154:32:11;-1:-1:-1;;;;;;;;;;;4154:32:11;;;;;;;;;4197:21;;;;;;;;;;;;3711:514;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10787:574:11:-;10859:25;10894:12;10916:11;;:::i;:::-;10937:10;;:::i;:::-;10957:17;10984:20;11014:13;11037:14;11068:21;11092:19;11103:7;11092:10;:19::i;:::-;11133:11;;11184:6;;;;11177:13;;11133:11;;;;-1:-1:-1;11133:11:11;11161:6;;;;-1:-1:-1;;;;;11161:6:11;;-1:-1:-1;11133:11:11;;-1:-1:-1;11184:6:11;11133:11;11177:13;;;;;;-1:-1:-1;;11177:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11206:1;:5;;11200:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11234:12:11;;11272:15;;;;;10787:574;;;;-1:-1:-1;10787:574:11;;11200:11;;-1:-1:-1;;;11234:12:11;;;-1:-1:-1;;;;;11234:12:11;;;;-1:-1:-1;11272:15:11;;;-1:-1:-1;;;;;;11308:10:11;;;;;-1:-1:-1;11345:8:11;;;-1:-1:-1;;;;;11345:8:11;;-1:-1:-1;10787:574:11;-1:-1:-1;;10787:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9145:523:11:-;9326:27;9356:21;9367:9;9356:10;:21::i;:::-;9410:12;;9326:51;;-1:-1:-1;9396:10:11;-1:-1:-1;;;;;9396:26:11;;;9410:12;;;;;9396:26;9388:35;;;;;;9462:23;9441:17;;;;:44;;;;;;;;;9433:53;;;;;;9497:22;;-1:-1:-1;;;;;;9497:22:11;;-1:-1:-1;;;;;9497:22:11;;;;;;9529;:12;;;9544:7;;9529:22;:::i;:::-;-1:-1:-1;9561:20:11;:11;;;9575:6;;9561:20;:::i;:::-;-1:-1:-1;9591:34:11;;-1:-1:-1;;;;;9591:34:11;;;-1:-1:-1;;;9591:34:11;-1:-1:-1;;;;;;;;;;;9591:34:11;;;;;;;;;9636:25;;;;;;;;;;;;9145:523;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12284:161:11:-;12392:6;:13;12343:11;;-1:-1:-1;;;;;12382:23:11;;;12374:32;;;;;;12423:6;:15;;-1:-1:-1;;;;;12423:15:11;;;;;;;;;;;;;;;;;;;12416:22;;12284:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2117:319::-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;1696:82:8:-;1762:9;;1696:82;:::o;18983:583:7:-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12661:316:11:-;12724:6;;12764:23;12749:1;:11;:38;;;;;;;;;12742:46;;;;12803:1;:15;;;-1:-1:-1;;;;;12803:20:11;;12799:60;;;12846:1;12839:9;;;;12799:60;12898:27;12909:1;:15;;;12898:10;:27::i;:::-;12869:56;;12942:24;12959:6;12942:24;;;;;;;;;;;;;;;;;;;;;;;;;12969:1;12942:28;;12661:316;-1:-1:-1;;;12661:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;3449:195:0;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1086:946:8:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1086:946:8;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" }, "gasEstimates": { "creation": { - "codeDepositCost": "4384000", - "executionCost": "25290", - "totalCost": "4409290" + "codeDepositCost": "4333000", + "executionCost": "infinite", + "totalCost": "infinite" }, "external": { "ESCAPE_HATCH_CALLER_ROLE()": "1144", @@ -6265,7 +6232,7 @@ "notice": "Authorizes multiple amounts within multiple Pledges to be withdrawn from the `vault` in an efficient single call " }, "normalizePledge(uint64)": { - "notice": "Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" + "notice": "////////////////Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" }, "numberOfPledgeAdmins()": { "notice": "//////////////////////////A constant getter used to check how many total Admins exist" @@ -6586,19 +6553,19 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60606040526069805460ff19169055341561001957600080fd5b610bb2806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029", - "sourceMap": "961:2242:9:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;961:2242:9;;;;;;;;;;;;;;" + "object": "60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029", + "sourceMap": "961:2256:9:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;961:2256:9;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a03600435166105a4565b34156101e657600080fd5b61012161061c565b34156101f957600080fd5b610121600160a060020a0360043516610622565b341561021857600080fd5b6101216106a4565b341561022b57600080fd5b6101216106aa565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061072695505050505050565b34156102a157600080fd5b610151600435610864565b34156102b757600080fd5b6101516004356108bc565b34156102cd57600080fd5b6102d561092b565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061093a95505050505050565b341561034d57600080fd5b6102d5610a16565b60695460ff1681565b604051600080516020610b678339815191528152601301604051809103902081565b6000604051600080516020610b67833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610726565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108bc565b6001909101906103db565b50505050565b604051600080516020610b6783398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610726565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de83610622565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6783398151915281526013016040518091039020610577338260006040518059106103b55750599080825280602002602001820160405250610726565b151561058257600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b67833981519152815260130160405180910390206105ec338260006040518059106103b55750599080825280602002602001820160405250610726565b15156105f757600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b600061062c610b54565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106106705780518252601f199092019160209182019101610651565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610730610b54565b6000808451111561074957835160200290508391508082525b600054600160a060020a0316158061085a575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107f05780820151838201526020016107d8565b50505050905090810190601f16801561081d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561083e57600080fd5b6102c65a03f1151561084f57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b678339815191528152601301604051809103902061088c82610a2a565b610897338383610726565b15156108a257600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6783398151915281526013016040518091039020610904338260006040518059106103b55750599080825280602002602001820160405250610726565b151561090f57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610944610a41565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109ab578082015183820152602001610993565b50505050905090810190601f1680156109d85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109f657600080fd5b6102c65a03f11515610a0757600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a32610b54565b610a3b82610b0d565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109f657600080fd5b610b15610b54565b6001604051805910610b245750595b908082528060200260200182016040525090508181600081518110610b4557fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a723058200a9520f24de135020c533716bead17168aba4125ba683fcfabc3a42994692d8b0029", - "sourceMap": "961:2242:9:-;;;;;;;;;-1:-1:-1;;;961:2242:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226;;;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;2126:450;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;1146:132;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1670:174:9;;;;;;;;;;;;;;1284:148;;;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1438:226::-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;;1438:226;;;;:::o;1994:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;2126:450::-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;-1:-1:-1;2474:40:9;-1:-1:-1;2126:450:9;;;;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;1146:132::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1284:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;115:101:18:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;:::-;186:23;115:101;-1:-1:-1;;115:101:18:o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:18;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;961:2242:9:-;;;;;;;;;;;;;:::o" + "object": "6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029", + "sourceMap": "961:2256:9:-;;;;;;;;;-1:-1:-1;;;961:2256:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226;;;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;2140:450;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1146:134;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1672:174:9;;;;;;;;;;;;;;1286:148;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1440:226::-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;;1440:226;;;;:::o;2008:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;2140:450::-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;-1:-1:-1;2488:40:9;-1:-1:-1;2140:450:9;;;;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1146:134::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1286:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:17;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;961:2256:9:-;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { - "codeDepositCost": "598800", + "codeDepositCost": "600000", "executionCost": "20845", - "totalCost": "619645" + "totalCost": "620845" }, "external": { "EVMSCRIPT_REGISTRY_APP()": "727", @@ -7506,19 +7473,19 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60606040526069805460ff19169055341561001957600080fd5b6122e8806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029", - "sourceMap": "919:12044:11:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;919:12044:11;;;;;;;;;;;;;;" + "object": "60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029", + "sourceMap": "919:12060:11:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;919:12060:11;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba146102e257806360b1e057146102f55780636293c702146103085780636e802c6a1461032757806372116e92146103e257806379f4542e1461049f5780637f61fa93146104be57806380afdea81461056b57806381ea44081461057e5780638b3dd7491461059d5780639b3fdf4c146105b0578063a1658fad146105c3578063b12b5f7614610626578063c8ae070f1461063c578063cc19ecf714610652578063d4aae0c41461070f578063db7c23141461073e578063eba8ba06146107fb578063f6b24b1c14610953578063f92a79ff14610a10578063fbfa77cf14610a61575b600080fd5b341561016057600080fd5b610168610a74565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff60043516610a7d565b34156101a757600080fd5b6101af610b26565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df6004803560248101910135610b48565b005b34156101ec57600080fd5b6101df6004351515610be2565b341561020457600080fd5b610168600160a060020a0360043516610c48565b341561022357600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610cbf915050565b60405167ffffffffffffffff909116815260200160405180910390f35b34156102ed57600080fd5b6101af610ebe565b341561030057600080fd5b6101af610ec9565b341561031357600080fd5b6101df600160a060020a0360043516610efd565b341561033257600080fd5b6102c560048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610f72915050565b34156103ed57600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050600160a060020a03853581169567ffffffffffffffff6020820135811696506040820135169450606001351691506111719050565b34156104aa57600080fd5b6101df600160a060020a036004351661159a565b34156104c957600080fd5b6102c560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250611612915050565b341561057657600080fd5b6101af61162a565b341561058957600080fd5b6101af600160a060020a0360043516611630565b34156105a857600080fd5b6101af6116b2565b34156105bb57600080fd5b6101af6116b8565b34156105ce57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061173495505050505050565b341561063157600080fd5b6101df600435611872565b341561064757600080fd5b6101df6004356118ca565b341561065d57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611939915050565b341561071a57600080fd5b610722611a2e565b604051600160a060020a03909116815260200160405180910390f35b341561074957600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611a3d915050565b341561080657600080fd5b61081b67ffffffffffffffff60043516611b32565b6040518089600281111561082b57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b838110156108ad578082015183820152602001610895565b50505050905090810190601f1680156108da5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156109105780820151838201526020016108f8565b50505050905090810190601f16801561093d5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561095e57600080fd5b6101df6004803567ffffffffffffffff169060248035600160a060020a0316919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250611d07915050565b3415610a1b57600080fd5b61072260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611dfc95505050505050565b3415610a6c57600080fd5b610722611ed8565b60695460ff1681565b600080610a8983611eec565b90506000815460ff166002811115610a9d57fe5b1415610aac5760009150610b20565b6002815460ff166002811115610abe57fe5b14610ac557fe5b600181015468010000000000000000900460ff1615610ae75760019150610b20565b600181015467ffffffffffffffff161515610b055760009150610b20565b6001810154610b1d9067ffffffffffffffff16610a7d565b91505b50919050565b60405160008051602061227d8339815191528152601301604051809103902081565b600060405160008051602061227d83398151915281526013016040518091039020610b9333826000604051805910610b7d5750595b9080825280602002602001820160405250611734565b1515610b9e57600080fd5b600091505b60ff821683901015610bdc57610bd1848460ff8516818110610bc157fe5b90506020020135600019166118ca565b600190910190610ba3565b50505050565b60405160008051602061227d83398151915281526013016040518091039020610c2a33826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610c3557600080fd5b506069805460ff19169115919091179055565b606954600090819060ff1680610c655750600160a060020a038316155b15610c735760019150610b20565b600160a060020a03831660009081526068602052604090205460ff1615610c9d5760019150610b20565b610ca683611630565b60009081526067602052604090205460ff169392505050565b6000610cca82610c48565b1515610cd557600080fd5b5060648054908160018101610cea83826120f7565b916000526020600020906004020160006101006040519081016040528060018152600160a060020a03338116602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610d6857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610e60929160200190612128565b5060e082015181600301908051610e7b929160200190612128565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a2949350505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061227d83398151915281526013016040518091039020610f4533826000604051805910610b7d5750599080825280602002602001820160405250611734565b1515610f5057600080fd5b50600160a060020a03166000908152606860205260409020805460ff19169055565b6000610f7d82610c48565b1515610f8857600080fd5b5060648054908160018101610f9d83826120f7565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff1916600183600281111561101b57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611113929160200190612128565b5060e08201518160030190805161112e929160200190612128565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061117d83610c48565b151561118857600080fd5b67ffffffffffffffff8516156113ad576111a185611eec565b90506014611399826101006040519081016040528154909190829060ff1660028111156111ca57fe5b60028111156111d557fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156112e95780601f106112be576101008083540402835291602001916112e9565b820191906000526020600020905b8154815290600101906020018083116112cc57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561138b5780601f106113605761010080835404028352916020019161138b565b820191906000526020600020905b81548152906001019060200180831161136e57829003601f168201915b505050505081525050611f34565b67ffffffffffffffff16106113ad57600080fd5b60648054925082600181016113c283826120f7565b916000526020600020906004020160006101006040519081016040528060028152600160a060020a03808c16602083015267ffffffffffffffff808b1660408401528b16606083015260006080830152881660a082015260c081018d905260e0018b905291905081518154829060ff1916600183600281111561144157fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a0260008051602061229d833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611539929160200190612128565b5060e082015181600301908051611554929160200190612128565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a2509695505050505050565b60405160008051602061227d833981519152815260130160405180910390206115e233826000604051805910610b7d5750599080825280602002602001820160405250611734565b15156115ed57600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006116213386868686610f72565b95945050505050565b60015481565b600061163a6121a2565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061167e5780518252601f19909201916020918201910161165f565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061173e6121a2565b6000808451111561175757835160200290508391508082525b600054600160a060020a03161580611868575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156117fe5780820151838201526020016117e6565b50505050905090810190601f16801561182b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561184c57600080fd5b6102c65a03f1151561185d57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061227d8339815191528152601301604051809103902061189a82611fa9565b6118a5338383611734565b15156118b057600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061227d8339815191528152601301604051809103902061191233826000604051805910610b7d5750599080825280602002602001820160405250611734565b151561191d57600080fd5b506000908152606760205260409020805460ff19166001179055565b600061194486611eec565b805490915033600160a060020a03908116610100909204161461196657600080fd5b6001815460ff16600281111561197857fe5b1461198257600080fd5b805461010060a860020a031916610100600160a060020a03871602178155600281018480516119b5929160200190612128565b50600381018380516119cb929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a2505050505050565b600054600160a060020a031681565b6000611a4886611eec565b805490915033600160a060020a039081166101009092041614611a6a57600080fd5b6000815460ff166002811115611a7c57fe5b14611a8657600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611ab9929160200190612128565b5060038101838051611acf929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a2505050505050565b600080611b3d6121a2565b611b456121a2565b6000806000806000611b568a611eec565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611d1286611eec565b805490915033600160a060020a039081166101009092041614611d3457600080fd5b6002815460ff166002811115611d4657fe5b14611d5057600080fd5b805461010060a860020a031916610100600160a060020a0387160217815560028101848051611d83929160200190612128565b5060038101838051611d99929160200190612128565b50805467ffffffffffffffff80841660a860020a0260008051602061229d83398151915290921691909117825586167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a2505050505050565b6000611e06611fc0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e6d578082015183820152602001611e55565b50505050905090810190601f168015611e9a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611eb857600080fd5b6102c65a03f11515611ec957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611f0757600080fd5b6064805467ffffffffffffffff8416908110611f1f57fe5b90600052602060002090600402019050919050565b600080600283516002811115611f4657fe5b14611f4d57fe5b826060015167ffffffffffffffff161515611f6b5760019150610b20565b611f788360600151611eec565b9050611f9f816101006040519081016040528154909190829060ff1660028111156111ca57fe5b6001019392505050565b611fb16121a2565b611fba826120b0565b92915050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561208c57600080fd5b6102c65a03f1151561209d57600080fd5b50505060405180519250829150505b5090565b6120b86121a2565b60016040518059106120c75750595b9080825280602002602001820160405250905081816000815181106120e857fe5b60209081029091010152919050565b8154818355818115116121235760040281600402836000526020600020918201910161212391906121b4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061216957805160ff1916838001178555612196565b82800160010185558215612196579182015b8281111561219657825182559160200191906001019061217b565b506120ac92915061221b565b60206040519081016040526000815290565b610ec691905b808211156120ac5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122046002830182612235565b612212600383016000612235565b506004016121ba565b610ec691905b808211156120ac5760008155600101612221565b50805460018160011615610100020316600290046000825580601f1061225b5750612279565b601f016020900490600052602060002090810190612279919061221b565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209ae9468d90f8fd213c6ddb1596e30807ffb6cc3d6972b357bc65a7d97e8903fd0029", - "sourceMap": "919:12044:11:-;;;;;;;;;-1:-1:-1;;;919:12044:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:482:11;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:226;;;;;;;;;;;;;;;;;;;;;;;1994:126;;;;;;;;;;;;;;;;2126:450;;;;;;;;;;-1:-1:-1;;;;;2126:450:9;;;;;4897:582:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4897:582:11;;-1:-1:-1;;;4897:582:11;;;;;;;;-1:-1:-1;;;;;4897:582:11;;-1:-1:-1;4897:582:11;;-1:-1:-1;;4897:582:11;;;;;;;;;;;;;;;;;;;9903:103;;;;;;;;;;;;68:84:31;;;;;;;;;;;;1850:138:9;;;;;;;;;;-1:-1:-1;;;;;1850:138:9;;;;;2463:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2463:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:606:11;;-1:-1:-1;;;2463:606:11;;;;;;;;-1:-1:-1;;;;;2463:606:11;;-1:-1:-1;2463:606:11;;-1:-1:-1;;2463:606:11;7535:894;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;;;;;;;7535:894:11;;;;;;;;;;;;;-1:-1:-1;7535:894:11;;;;;;-1:-1:-1;7535:894:11;;;;;-1:-1:-1;7535:894:11;;-1:-1:-1;7535:894:11;1146:132:9;;;;;;;;;;-1:-1:-1;;;;;1146:132:9;;;;;2051:311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2051:311:11;;-1:-1:-1;;;2051:311:11;;;;;;;;-1:-1:-1;;;;;2051:311:11;;-1:-1:-1;2051:311:11;;-1:-1:-1;;2051:311:11;113:20:23;;;;;;;;;;;;2582:619:9;;;;;;;;;;-1:-1:-1;;;;;2582:619:9;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;1670:174:9;;;;;;;;;;;;;;1284:148;;;;;;;;;;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6233:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;;6233:531:11;;;;;-1:-1:-1;6233:531:11;;-1:-1:-1;;6233:531:11;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3709:511:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;;3709:511:11;;;;;-1:-1:-1;3709:511:11;;-1:-1:-1;;3709:511:11;10774:572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10774:572:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9133:520:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;;9133:520:11;;;;;-1:-1:-1;9133:520:11;;-1:-1:-1;;9133:520:11;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11553:482:11:-;11631:4;11651:21;11675;11686:9;11675:10;:21::i;:::-;11651:45;-1:-1:-1;11726:21:11;11711:11;;;;:36;;;;;;;;;11707:79;;;11770:5;11763:12;;;;11707:79;11818:23;11803:11;;;;:38;;;;;;;;;11796:46;;;;11857:10;;;;;;;;;11853:52;;;11890:4;11883:11;;;;11853:52;11918:15;;;;;;:20;11914:63;;;11961:5;11954:12;;;;11914:63;12012:15;;;;11994:34;;12012:15;;11994:17;:34::i;:::-;11987:41;;11553:482;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1438:226::-;1547:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1557:1:9;1547:11;;1542:116;1560:25;;;;;;1542:116;;;1606:41;1629:14;;:17;;;;;;;;;;;;;;;;;;;1606:22;:41::i;:::-;1587:3;;;;;1542:116;;;1438:226;;;;:::o;1994:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2080:17:9;:33;;-1:-1:-1;;2080:33:9;2100:13;;2080:33;;;;;;1994:126::o;2126:450::-;2203:17;;2183:4;;;;2203:17;;;:32;;-1:-1:-1;;;;;;2224:11:9;;;2203:32;2199:74;;;2258:4;2251:11;;;;2199:74;-1:-1:-1;;;;;2326:29:9;;;;;;:23;:29;;;;;;;;2322:71;;;2378:4;2371:11;;;;2322:71;2497:17;2509:4;2497:11;:17::i;:::-;2532:37;;;;:23;:37;;;;;;;;;2126:450;-1:-1:-1;;;2126:450:9:o;4897:582:11:-;5046:17;5088:21;5102:6;5088:13;:21::i;:::-;5080:30;;;;;;;;-1:-1:-1;5157:6:11;:13;;;;5182:254;;;;5157:6;5182:254;;:::i;:::-;;;;;;;;;;;;5207:219;;;;;;;;;5236:24;5207:219;;-1:-1:-1;;;;;5278:10:11;5207:219;;;;;;;;;;;;;-1:-1:-1;5207:219:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:254;;-1:-1:-1;5182:254:11;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;-1:-1:-1;;;;;;5182:254:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;5182:254:11;-1:-1:-1;;;;;;;;;;;5182:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5182:254:11;;;;;-1:-1:-1;;;;;5182:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5461:10;5447:25;;;;;;;;;;;;4897:582;;;;;;:::o;9903:103::-;9982:6;:13;-1:-1:-1;;9982:17:11;9903:103;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;1850:138:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1944:29:9;1976:5;1944:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1944:37:9;;;1850:138::o;2463:606:11:-;2631:14;2669:21;2683:6;2669:13;:21::i;:::-;2661:30;;;;;;;;-1:-1:-1;2735:6:11;:13;;;;2787:245;;;;2735:6;2787:245;;:::i;:::-;;;;;;;;;;;;2812:210;;;;;;;;;2841:21;2812:210;;-1:-1:-1;;;;;2812:210:11;;;;;;;;;;;;;;-1:-1:-1;2812:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:245;;-1:-1:-1;2787:245:11;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;-1:-1:-1;;;;;;2787:245:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;2787:245:11;-1:-1:-1;;;;;;;;;;;2787:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2787:245:11;;;;;-1:-1:-1;;;;;2787:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3054:7;3043:19;;;;;;;;;;;;2463:606;;;;;;;:::o;7535:894::-;7743:16;7855:21;7784;7798:6;7784:13;:21::i;:::-;7776:30;;;;;;;;7821:18;;;;7817:250;;7879:25;7890:13;7879:10;:25::i;:::-;7855:49;;1096:2;8013:19;8030:1;8013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8013:19:11;;;;;;;;;;;-1:-1:-1;;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8013:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;:42;;;8005:51;;;;;;8096:6;:13;;;-1:-1:-1;8096:13:11;8121:267;;;;8096:6;8121:267;;:::i;:::-;;;;;;;;;;;;8146:232;;;;;;;;;8175:23;8146:232;;-1:-1:-1;;;;;8146:232:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8146:232:11;;;;;;;;;;;;;;;;;;;;;8121:267;;-1:-1:-1;8121:267:11;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;-1:-1:-1;;;;;;8121:267:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;8121:267:11;-1:-1:-1;;;;;;;;;;;8121:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:267:11;;;;;-1:-1:-1;;;;;8121:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8412:9;8399:23;;;;;;;;;;;;7535:894;;;;;;;;;:::o;1146:132:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1235:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1235:36:9;1267:4;1235:36;;;1146:132::o;2051:311:11:-;2197:14;2234:121;2256:10;2280:4;2298:3;2315:10;2339:6;2234:8;:121::i;:::-;2227:128;2051:311;-1:-1:-1;;;;;2051:311:11:o;113:20:23:-;;;;:::o;2582:619:9:-;2637:7;2656:19;;:::i;:::-;2798:4;2786:11;2966:4;2960:5;2950:21;;2999:4;2991:6;2984;3146:4;3143:1;3136:4;3128:6;3124:3;3118:4;3106:11;2694:467;3187:6;3177:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3170:24:9;;2582:619;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;1670:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1763:17;1767:12;1763:3;:17::i;:::-;444:37:24;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1832:5:9;1792:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1792:45:9;;;1670:174::o;1284:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:24;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1381:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1381:44:9;1421:4;1381:44;;;1284:148::o;6233:531:11:-;6413:28;6444:22;6455:10;6444;:22::i;:::-;6498:13;;6413:53;;-1:-1:-1;6484:10:11;-1:-1:-1;;;;;6484:27:11;;;6498:13;;;;;6484:27;6476:36;;;;;;6552:24;6530:18;;;;:46;;;;;;;;;6522:55;;;;;;6587:23;;-1:-1:-1;;;;;;6587:23:11;;-1:-1:-1;;;;;6587:23:11;;;;;;6620:13;;;6636:7;;6620:23;;;;;;;;:::i;:::-;-1:-1:-1;6653:12:11;;;6668:6;;6653:21;;;;;;;;:::i;:::-;-1:-1:-1;6684:35:11;;;;;;-1:-1:-1;;;6684:35:11;-1:-1:-1;;;;;;;;;;;6684:35:11;;;;;;;;;6730:27;;;;;;;;;;;;6233:531;;;;;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;3709:511:11:-;3883:25;3911:19;3922:7;3911:10;:19::i;:::-;3962:10;;3883:47;;-1:-1:-1;3948:10:11;-1:-1:-1;;;;;3948:24:11;;;3962:10;;;;;3948:24;3940:33;;;;;;4010:21;3991:15;;;;:40;;;;;;;;;3983:49;;;;;;4061:20;;-1:-1:-1;;;;;;4061:20:11;;-1:-1:-1;;;;;4061:20:11;;;;;;4091:10;;;4104:7;;4091:20;;;;;;;;:::i;:::-;-1:-1:-1;4121:9:11;;;4133:6;;4121:18;;;;;;;;:::i;:::-;-1:-1:-1;4149:32:11;;;;;;-1:-1:-1;;;4149:32:11;-1:-1:-1;;;;;;;;;;;4149:32:11;;;;;;;;;4192:21;;;;;;;;;;;;3709:511;;;;;;:::o;10774:572::-;10844:25;10879:12;10901:11;;:::i;:::-;10922:10;;:::i;:::-;10942:17;10969:20;10999:13;11022:14;11053:21;11077:19;11088:7;11077:10;:19::i;:::-;11118:11;;11169:6;;;;11162:13;;11118:11;;;;-1:-1:-1;11118:11:11;11146:6;;;;-1:-1:-1;;;;;11146:6:11;;-1:-1:-1;11118:11:11;;-1:-1:-1;11169:6:11;11118:11;11162:13;;;;;;-1:-1:-1;;11162:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;:5;;11185:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11219:12:11;;11257:15;;;;;10774:572;;;;-1:-1:-1;10774:572:11;;11185:11;;-1:-1:-1;;;11219:12:11;;;;;;;;-1:-1:-1;11257:15:11;;;-1:-1:-1;;;11293:10:11;;;;;;-1:-1:-1;11330:8:11;;;-1:-1:-1;;;;;11330:8:11;;-1:-1:-1;10774:572:11;-1:-1:-1;;10774:572:11:o;9133:520::-;9311:27;9341:21;9352:9;9341:10;:21::i;:::-;9395:12;;9311:51;;-1:-1:-1;9381:10:11;-1:-1:-1;;;;;9381:26:11;;;9395:12;;;;;9381:26;9373:35;;;;;;9447:23;9426:17;;;;:44;;;;;;;;;9418:53;;;;;;9482:22;;-1:-1:-1;;;;;;9482:22:11;;-1:-1:-1;;;;;9482:22:11;;;;;;9514:12;;;9529:7;;9514:22;;;;;;;;:::i;:::-;-1:-1:-1;9546:11:11;;;9560:6;;9546:20;;;;;;;;:::i;:::-;-1:-1:-1;9576:34:11;;;;;;-1:-1:-1;;;9576:34:11;-1:-1:-1;;;;;;;;;;;9576:34:11;;;;;;;;;9621:25;;;;;;;;;;;;9133:520;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12273:161:11:-;12381:6;:13;12332:11;;12371:23;;;;12363:32;;;;;;12412:6;:15;;;;;;;;;;;;;;;;;;;;;;12405:22;;12273:161;;;:::o;12650:311::-;12708:6;;12748:23;12733:1;:11;:38;;;;;;;;;12726:46;;;;12787:1;:15;;;:20;;;12783:60;;;12830:1;12823:9;;;;12783:60;12882:27;12893:1;:15;;;12882:10;:27::i;:::-;12853:56;;12926:24;12943:6;12926:24;;;;;;;;;;;;;;;;;;;;;;;;;12953:1;12926:28;;12650:311;-1:-1:-1;;;12650:311:11:o;115:101:18:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;:::-;186:23;115:101;-1:-1:-1;;115:101:18:o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;1358:117:18:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:18:o;919:12044:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:12044:11;;;-1:-1:-1;919:12044:11;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o" + "object": "6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029", + "sourceMap": "919:12060:11:-;;;;;;;;;-1:-1:-1;;;919:12060:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:478:11;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226;;;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;2140:450;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;9918:101;;;;;;;;;;;;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;2465:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2465:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2465:606:11;;-1:-1:-1;;;2465:606:11;;;;;;;;-1:-1:-1;;;;;2465:606:11;;-1:-1:-1;2465:606:11;;-1:-1:-1;;2465:606:11;7545:896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:896:11;;;;;;;;;;;;;;;;;;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2051:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2051:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1672:174:9;;;;;;;;;;;;;;1286:148;;;;;;;;;;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;10787:574;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11568:478:11:-;11642:4;11662:21;11686;11697:9;11686:10;:21::i;:::-;11662:45;-1:-1:-1;11737:21:11;11722:11;;;;:36;;;;;;;;;11718:79;;;11781:5;11774:12;;;;11718:79;11829:23;11814:11;;;;:38;;;;;;;;;11807:46;;;;11868:10;;;;;;;;;11864:52;;;11901:4;11894:11;;;;11864:52;11929:15;;;;;;:20;11925:63;;;11972:5;11965:12;;;;11925:63;12023:15;;;;12005:34;;12023:15;;12005:17;:34::i;:::-;11998:41;;11568:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1440:226::-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;;1440:226;;;;:::o;2008:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;2140:450::-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4902:584:11:-;5053:17;5095:21;5109:6;5095:13;:21::i;:::-;5087:30;;;;;;;;-1:-1:-1;5164:6:11;:13;;;;5189:254;;;;5164:6;5189:254;;:::i;:::-;;;;;;;;;;;;5214:219;;;;;;;;;5243:24;5214:219;;;;5285:10;-1:-1:-1;;;;;5214:219:11;;;;;5313:10;5214:219;;;;;;5341:1;5214:219;;;;;;5360:5;5214:219;;;;;;5383:6;-1:-1:-1;;;;;5214:219:11;;;;;5407:4;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:3;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5214:219:11;;;;-1:-1:-1;5189:254:11;;;-1:-1:-1;5189:254:11;;-1:-1:-1;;5189:254:11;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;-1:-1:-1;;;;;;5189:254:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;;;;;;;;;;5189:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5468:10;5454:25;;;;;;;;;;;;4902:584;;;;;;;;:::o;9918:101::-;9995:6;:13;-1:-1:-1;;9995:17:11;9918:101;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;2465:606:11:-;2633:14;2671:21;2685:6;2671:13;:21::i;:::-;2663:30;;;;;;;;-1:-1:-1;2737:6:11;:13;;;;2789:245;;;;2737:6;2789:245;;:::i;:::-;;;;;;;;;;;;2814:210;;;;;;;;;2843:21;2814:210;;-1:-1:-1;;;;;2814:210:11;;;;;;;;;;;;;;-1:-1:-1;2814:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2789:245;;-1:-1:-1;2789:245:11;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;-1:-1:-1;;;;;;2789:245:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;;;;;;;;;;2789:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3056:7;3045:19;;;;;;;;;;;;2465:606;;;;;;;:::o;7545:896::-;7755:16;7867:21;7796;7810:6;7796:13;:21::i;:::-;7788:30;;;;;;;;7833:18;;;;7829:250;;7891:25;7902:13;7891:10;:25::i;:::-;7867:49;;1096:2;8025:19;8042:1;8025:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;:42;;;8017:51;;;;;;8108:6;:13;;;-1:-1:-1;8108:13:11;8133:267;;;;8108:6;8133:267;;:::i;:::-;;;;;;;;;;;;8158:232;;;;;;;;;8187:23;8158:232;;;;8228:12;-1:-1:-1;;;;;8158:232:11;;;;;8258:10;8158:232;;;;;;8286:13;8158:232;;;;;;8317:5;8158:232;;;;;;8340:6;-1:-1:-1;;;;;8158:232:11;;;;;8364:4;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:3;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8158:232:11;;;;-1:-1:-1;8133:267:11;;;-1:-1:-1;8133:267:11;;-1:-1:-1;;8133:267:11;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;-1:-1:-1;;;;;;8133:267:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;;;;;;;;;;8133:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8424:9;8411:23;;;;;;;;;;;;7545:896;;;;;;;;;;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2051:313:11:-;2199:14;2236:121;2258:10;2282:4;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:3;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2317:10;2341:6;2236:8;:121::i;:::-;2229:128;2051:313;-1:-1:-1;;;;;;;2051:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1286:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6240:534:11:-;6423:28;6454:22;6465:10;6454;:22::i;:::-;6508:13;;6423:53;;-1:-1:-1;6494:10:11;-1:-1:-1;;;;;6494:27:11;;;6508:13;;;;;6494:27;6486:36;;;;;;6562:24;6540:18;;;;:46;;;;;;;;;6532:55;;;;;;6597:23;;-1:-1:-1;;;;;;6597:23:11;;-1:-1:-1;;;;;6597:23:11;;;;;;6630;:13;;;6646:7;;6630:23;:::i;:::-;-1:-1:-1;6663:21:11;:12;;;6678:6;;6663:21;:::i;:::-;-1:-1:-1;6694:35:11;;;;;;-1:-1:-1;;;6694:35:11;-1:-1:-1;;;;;;;;;;;6694:35:11;;;;;;;;;6740:27;;;;;;;;;;;;6240:534;;;;;;;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;3711:514:11:-;3888:25;3916:19;3927:7;3916:10;:19::i;:::-;3967:10;;3888:47;;-1:-1:-1;3953:10:11;-1:-1:-1;;;;;3953:24:11;;;3967:10;;;;;3953:24;3945:33;;;;;;4015:21;3996:15;;;;:40;;;;;;;;;3988:49;;;;;;4066:20;;-1:-1:-1;;;;;;4066:20:11;;-1:-1:-1;;;;;4066:20:11;;;;;;4096;:10;;;4109:7;;4096:20;:::i;:::-;-1:-1:-1;4126:18:11;:9;;;4138:6;;4126:18;:::i;:::-;-1:-1:-1;4154:32:11;;;;;;-1:-1:-1;;;4154:32:11;-1:-1:-1;;;;;;;;;;;4154:32:11;;;;;;;;;4197:21;;;;;;;;;;;;3711:514;;;;;;;;:::o;10787:574::-;10859:25;10894:12;10916:11;;:::i;:::-;10937:10;;:::i;:::-;10957:17;10984:20;11014:13;11037:14;11068:21;11092:19;11103:7;11092:10;:19::i;:::-;11133:11;;11184:6;;;;11177:13;;11133:11;;;;-1:-1:-1;11133:11:11;11161:6;;;;-1:-1:-1;;;;;11161:6:11;;-1:-1:-1;11133:11:11;;-1:-1:-1;11184:6:11;11133:11;11177:13;;;;;;-1:-1:-1;;11177:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11206:1;:5;;11200:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11234:12:11;;11272:15;;;;;10787:574;;;;-1:-1:-1;10787:574:11;;11200:11;;-1:-1:-1;;;11234:12:11;;;;;;;;-1:-1:-1;11272:15:11;;;-1:-1:-1;;;11308:10:11;;;;;;-1:-1:-1;11345:8:11;;;-1:-1:-1;;;;;11345:8:11;;-1:-1:-1;10787:574:11;-1:-1:-1;;10787:574:11:o;9145:523::-;9326:27;9356:21;9367:9;9356:10;:21::i;:::-;9410:12;;9326:51;;-1:-1:-1;9396:10:11;-1:-1:-1;;;;;9396:26:11;;;9410:12;;;;;9396:26;9388:35;;;;;;9462:23;9441:17;;;;:44;;;;;;;;;9433:53;;;;;;9497:22;;-1:-1:-1;;;;;;9497:22:11;;-1:-1:-1;;;;;9497:22:11;;;;;;9529;:12;;;9544:7;;9529:22;:::i;:::-;-1:-1:-1;9561:20:11;:11;;;9575:6;;9561:20;:::i;:::-;-1:-1:-1;9591:34:11;;;;;;-1:-1:-1;;;9591:34:11;-1:-1:-1;;;;;;;;;;;9591:34:11;;;;;;;;;9636:25;;;;;;;;;;;;9145:523;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12284:161:11:-;12392:6;:13;12343:11;;12382:23;;;;12374:32;;;;;;12423:6;:15;;;;;;;;;;;;;;;;;;;;;;12416:22;;12284:161;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12661:316:11:-;12724:6;;12764:23;12749:1;:11;:38;;;;;;;;;12742:46;;;;12803:1;:15;;;:20;;;12799:60;;;12846:1;12839:9;;;;12799:60;12898:27;12909:1;:15;;;12898:10;:27::i;:::-;12869:56;;12942:24;12959:6;12942:24;;;;;;;;;;;;;;;;;;;;;;;;;12969:1;12942:28;;12661:316;-1:-1:-1;;;12661:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;919:12060:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:12060:11;;;-1:-1:-1;919:12060:11;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;919:12060:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o" }, "gasEstimates": { "creation": { - "codeDepositCost": "1787200", - "executionCost": "22097", - "totalCost": "1809297" + "codeDepositCost": "1739400", + "executionCost": "22040", + "totalCost": "1761440" }, "external": { "EVMSCRIPT_REGISTRY_APP()": "859", @@ -7847,13 +7814,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029", - "sourceMap": "920:5086:12:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;920:5086:12;;;;;;;;;;;;;;" + "object": "60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029", + "sourceMap": "920:5090:12:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;920:5090:12;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a72305820faa9d00763951da460fbc6636f5855c2651622a07a3120df725080049368e98f0029", - "sourceMap": "920:5086:12:-;;;;;;;;;-1:-1:-1;;;920:5086:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:96:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1903:611;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1903:611:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;113:20:23;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1446:96:12:-;1517:7;:14;-1:-1:-1;;1517:18:12;1446:96;:::o;1903:611::-;1968:11;1989:12;2011:17;2038:22;2070:17;2097:16;2123:13;2146:23;2186:15;;:::i;:::-;2204:21;2216:8;2204:11;:21::i;:::-;2186:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2186:39:12;;;-1:-1:-1;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2186:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2186:39:12;-1:-1:-1;2186:39:12;2244:8;2235:17;;2270:1;:7;;;2262:15;;2307:1;:17;;;:24;2287:45;;2360:1;:17;;;2342:35;;2400:1;:12;;;2387:25;;2434:1;:11;;;2422:23;;2463:1;:7;;;2455:15;;2494:1;:13;;;2480:27;;1903:611;;;;;;;;;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;4554:161:12:-;4659:7;:14;4614:6;;4648:25;;;;4640:34;;;;;;4691:7;:17;;;;;;;;;;;;;;;;;;;;;;4684:24;;4554:161;;;:::o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;920:5086:12;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o" + "object": "6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029", + "sourceMap": "920:5090:12:-;;;;;;;;;-1:-1:-1;;;920:5090:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1905:613;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;113:20:22;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;:::o;1905:613::-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;4558:161:12:-;4663:7;:14;4618:6;;4652:25;;;;4644:34;;;;;;4695:7;:17;;;;;;;;;;;;;;;;;;;;;;4688:24;;4558:161;;;:::o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;920:5090:12;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -7907,358 +7874,6 @@ } } }, - "./contracts/test/StandardToken.sol": { - "StandardToken": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseApproval", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_addedValue", - "type": "uint256" - } - ], - "name": "increaseApproval", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "Function to check the amount of tokens that an owner allowed to a spender.", - "params": { - "_owner": "address The address which owns the funds.", - "_spender": "address The address which will spend the funds." - }, - "return": "A uint256 specifying the amount of tokens still available for the spender." - }, - "approve(address,uint256)": { - "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", - "params": { - "_spender": "The address which will spend the funds.", - "_value": "The amount of tokens to be spent." - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.", - "params": { - "_owner": "The address to query the the balance of." - }, - "return": "An uint256 representing the amount owned by the passed address." - }, - "decreaseApproval(address,uint256)": { - "details": "Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", - "params": { - "_spender": "The address which will spend the funds.", - "_subtractedValue": "The amount of tokens to decrease the allowance by." - } - }, - "increaseApproval(address,uint256)": { - "details": "Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", - "params": { - "_addedValue": "The amount of tokens to increase the allowance by.", - "_spender": "The address which will spend the funds." - } - }, - "totalSupply()": { - "details": "total number of tokens in existence" - }, - "transfer(address,uint256)": { - "details": "transfer token for a specified address", - "params": { - "_to": "The address to transfer to.", - "_value": "The amount to be transferred." - } - }, - "transferFrom(address,address,uint256)": { - "details": "Transfer tokens from one address to another", - "params": { - "_from": "address The address which you want to send tokens from", - "_to": "address The address which you want to transfer to", - "_value": "uint256 the amount of tokens to be transferred" - } - } - }, - "title": "Standard ERC20 token" - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b60038054600160a060020a03191633600160a060020a031617905561063e806100396000396000f3006060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029", - "sourceMap": "504:5141:13:-;;;842:63;;;;;;;;882:5;:18;;-1:-1:-1;;;;;;882:18:13;890:10;-1:-1:-1;;;;;882:18:13;;;;504:5141;;;-1:-1:-1;504:5141:13;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029", - "sourceMap": "504:5141:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3446:183;;;;;;;;;;-1:-1:-1;;;;;3446:183:13;;;;;;;;;;;;;;;;;;;;;;;;1040:83;;;;;;;;;;;;;;;;;;;;;;;;;;;2393:430;;;;;;;;;;-1:-1:-1;;;;;2393:430:13;;;;;;;;;;;;1127:156;;;;;;;;;;-1:-1:-1;;;;;1127:156:13;;;;;;;;;5247:395;;;;;;;;;;-1:-1:-1;;;;;5247:395:13;;;;;;;2012:107;;;;;;;;;;-1:-1:-1;;;;;2012:107:13;;;;;1437:373;;;;;;;;;;-1:-1:-1;;;;;1437:373:13;;;;;;;4531:254;;;;;;;;;;-1:-1:-1;;;;;4531:254:13;;;;;;;3948:126;;;;;;;;;;-1:-1:-1;;;;;3948:126:13;;;;;;;;;;3446:183;-1:-1:-1;;;;;3533:10:13;3525:19;;3513:4;3525:19;;;;;;;;;;;:29;;;;;;;;;;;;;:38;;;3513:4;;3525:29;:19;3569:38;;3557:6;;3569:38;;;;;;;;;;;;;-1:-1:-1;3620:4:13;3446:183;;;;:::o;1040:83::-;1106:12;;1040:83;:::o;2393:430::-;2475:4;-1:-1:-1;;;;;2495:17:13;;;;2487:26;;;;;;-1:-1:-1;;;;;2537:15:13;;;;;;:8;:15;;;;;;2527:25;;;2519:34;;;;;;-1:-1:-1;;;;;2577:14:13;;;:7;:14;;;;;;;;;;;2592:10;2577:26;;;;;;;;;;2567:36;;;2559:45;;;;;;-1:-1:-1;;;;;2629:15:13;;;;;;;:8;:15;;;;;;;;;;:24;;;2611:42;;2675:13;;;;;;;;;;;:22;;2659:38;;2732:14;;;;;;;;;2747:10;2732:26;;;;;;;;;;;;;;;:35;;;2703:64;;2773:28;;2629:24;;2773:28;;;;;;;;;;;;;-1:-1:-1;2814:4:13;2393:430;;;;;:::o;1127:156::-;960:5;;946:10;-1:-1:-1;;;;;946:19:13;;;960:5;;946:19;938:28;;;;;;1192:12;:22;;;;;;-1:-1:-1;;;;;1222:13:13;;1192:12;1222:13;;;-1:-1:-1;1222:13:13;;;;;;:23;;;;;;1253:24;;1208:6;;1253:24;;;;;;;;;;;;;1127:156;;:::o;5247:395::-;-1:-1:-1;;;;;5366:10:13;5358:19;;5330:4;5358:19;;;;;;;;;;;:29;;;;;;;;;;;;5397:27;;;5393:161;;;-1:-1:-1;;;;;5442:10:13;5434:19;;5466:1;5434:19;;;;;;;;;;;:29;;;;;;;;;;;:33;5393:161;;;-1:-1:-1;;;;;5496:10:13;5488:19;;:7;:19;;;;;;;;;;;:29;;;;;;;;;5520:27;;;5488:59;;5393:161;-1:-1:-1;;;;;5568:10:13;5559:61;;5590:7;:19;;;;;;;;;;;5559:61;;;5590:29;;;;;;;;;;;;5559:61;;;;;;;;;;;;;;;-1:-1:-1;5633:4:13;;5247:395;-1:-1:-1;;;5247:395:13:o;2012:107::-;-1:-1:-1;;;;;2098:16:13;2068:15;2098:16;;;:8;:16;;;;;;;2012:107::o;1437:373::-;1500:4;-1:-1:-1;;;;;1520:17:13;;;;1512:26;;;;;;-1:-1:-1;;;;;1571:10:13;1562:20;;;;;:8;:20;;;;;;1552:30;;;1544:39;;;;;;-1:-1:-1;;;;;1685:10:13;1676:20;;;;;;:8;:20;;;;;;;;:29;;;1653:52;;1727:13;;;;;;;;;;;;:22;;1711:38;;1727:13;1755:33;;1699:6;;1755:33;;;;;;;;;;;;;-1:-1:-1;1801:4:13;1437:373;;;;:::o;4531:254::-;-1:-1:-1;;;;;4661:10:13;4653:19;;4609:4;4653:19;;;;;;;;;;;:29;;;;;;;;;;;;;;;:43;;4621:75;;;;4609:4;;4653:29;:19;4702:61;;;;;;;;;;;;;;;-1:-1:-1;4776:4:13;4531:254;;;;:::o;3948:126::-;-1:-1:-1;;;;;4044:15:13;;;4022:7;4044:15;;;;;;;;;;;:25;;;;;;;;;;;;;3948:126::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "319600", - "executionCost": "20717", - "totalCost": "340317" - }, - "external": { - "allowance(address,address)": "870", - "approve(address,uint256)": "22330", - "balanceOf(address)": "705", - "decreaseApproval(address,uint256)": "23286", - "increaseApproval(address,uint256)": "22690", - "mint(address,uint256)": "42975", - "totalSupply()": "395", - "transfer(address,uint256)": "43332", - "transferFrom(address,address,uint256)": "64071" - } - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decreaseApproval(address,uint256)": "66188463", - "increaseApproval(address,uint256)": "d73dd623", - "mint(address,uint256)": "40c10f19", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "userdoc": { - "methods": {} - } - } - }, "./contracts/test/TestSimpleDelegatePlugin.sol": { "TestSimpleDelegatePlugin": { "abi": [ @@ -8445,13 +8060,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029", - "sourceMap": "122:1437:14:-;;;473:230;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;557:10:14;-1:-1:-1;;;;;557:23:14;;;571:9;557:23;;;;;;549:32;;;;;;636:14;:32;;-1:-1:-1;;;;;;;;;;;636:32:14;;;;;-1:-1:-1;;;;;;;;636:32:14;;;;678:18;;;;;;;;122:1437;;;;;;" + "object": "6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029", + "sourceMap": "122:1437:13:-;;;473:230;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;557:10:13;-1:-1:-1;;;;;557:23:13;;;571:9;557:23;;;;;;549:32;;;;;;636:14;:32;;-1:-1:-1;;;;;;;;;;;636:32:13;;;;;-1:-1:-1;;;;;;;;636:32:13;;;;678:18;;;;;;;;122:1437;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029", - "sourceMap": "122:1437:14:-;;;;;;;;;-1:-1:-1;;;122:1437:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;709:255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;709:255:14;;-1:-1:-1;;;709:255:14;;;;;-1:-1:-1;709:255:14;;-1:-1:-1;;709:255:14;;;1280:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;:::o;709:255::-;815:11;;-1:-1:-1;;;815:11:14;;;;807:20;;;;;;;;850:14;;;;;;;;;;;:26;;;877:4;883:3;888:10;922:4;850:78;;;;;;;;-1:-1:-1;;;850:78:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:10:14;:91;;-1:-1:-1;;837:91:14;;;;;;;;;;938:19;;;;-1:-1:-1;;;;709:255:14:o;1280:276::-;1462:11;;-1:-1:-1;;;1462:11:14;;;;1461:12;1453:21;;;;;;1484:65;1498:11;1511:10;1523:8;1533:7;1542:6;1484:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:276;;;;;:::o;970:304::-;1143:15;1179:11;;-1:-1:-1;;;1179:11:14;;;;1178:12;1170:21;;;;;;1201:66;1216:11;1229:10;1241:8;1251:7;1260:6;1201:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;:::o" + "object": "6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029", + "sourceMap": "122:1437:13:-;;;;;;;;;-1:-1:-1;;;122:1437:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;709:255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;709:255:13;;-1:-1:-1;;;709:255:13;;;;;-1:-1:-1;709:255:13;;-1:-1:-1;;709:255:13;;;1280:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;:::o;709:255::-;815:11;;-1:-1:-1;;;815:11:13;;;;807:20;;;;;;;;850:14;;;;;;;;;;;:26;;;877:4;883:3;888:10;922:4;850:78;;;;;;;;-1:-1:-1;;;850:78:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:10:13;:91;;-1:-1:-1;;837:91:13;;;;;;;;;;938:19;;;;-1:-1:-1;;;;709:255:13:o;1280:276::-;1462:11;;-1:-1:-1;;;1462:11:13;;;;1461:12;1453:21;;;;;;1484:65;1498:11;1511:10;1523:8;1533:7;1542:6;1484:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:276;;;;;:::o;970:304::-;1143:15;1179:11;;-1:-1:-1;;;1179:11:13;;;;1178:12;1170:21;;;;;;1201:66;1216:11;1229:10;1241:8;1251:7;1260:6;1201:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -8509,13 +8124,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd966500296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201ece20256ef51a90fe05afe1582c558a1dfb75c6d719b10e44c79cc5f6365b640029", - "sourceMap": "1561:335:14:-;;;1609:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:26:14;;-1:-1:-1;1832:14:14;1803:44;;:::i;:::-;-1:-1:-1;;;;;1803:44:14;;;;;;;;;;;;;;;;;;;;;;;;1774:73;;1857:1;-1:-1:-1;;;;;1857:6:14;;1864:4;1870:3;1875:10;1857:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1857:29:14;-1:-1:-1;;;;;1857:29:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:284:14;;;;;1561:335;;;;;;;;;;;;:::o;:::-;;;;;;;" + "object": "6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a800296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029", + "sourceMap": "1561:335:13:-;;;1609:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:26:13;;-1:-1:-1;1832:14:13;1803:44;;:::i;:::-;-1:-1:-1;;;;;1803:44:13;;;;;;;;;;;;;;;;;;;;;;;;1774:73;;1857:1;-1:-1:-1;;;;;1857:6:13;;1864:4;1870:3;1875:10;1857:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1857:29:13;-1:-1:-1;;;;;1857:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:284:13;;;;;1561:335;;;;;;;;;;;;:::o;:::-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600080fd00a165627a7a72305820c6d2fd0260eb7a7ab97bdf37b28047ac26f5b32a0c8d3fcb6a7d8665c0fd96650029", - "sourceMap": "1561:335:14:-;;;;;" + "object": "6060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a80029", + "sourceMap": "1561:335:13:-;;;;;" }, "gasEstimates": { "creation": { @@ -8716,13 +8331,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029", - "sourceMap": "122:1388:15:-;;;436:157;;;;;;;;503:9;-1:-1:-1;;;;;489:23:15;:10;-1:-1:-1;;;;;489:23:15;;;481:32;;;;;;;;568:11;:18;;-1:-1:-1;;;;;;568:18:15;;;;;122:1388;;;;;;" + "object": "6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029", + "sourceMap": "122:1388:14:-;;;436:157;;;;;;;;503:9;-1:-1:-1;;;;;489:23:14;:10;-1:-1:-1;;;;;489:23:14;;;481:32;;;;;;;;568:11;:18;;-1:-1:-1;;;;;;568:18:14;;;;;122:1388;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029", - "sourceMap": "122:1388:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;599:316:15;;-1:-1:-1;;;599:316:15;;;;;-1:-1:-1;599:316:15;;-1:-1:-1;;599:316:15;;;162:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;747:11;;;;;;;739:20;;;;;;;;781:14;:25;;;807:4;813:3;826:4;833:13;848:1;873:4;781:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:9:15;:110;;-1:-1:-1;;769:110:15;;;;;;;;;;-1:-1:-1;;889:19:15;;;-1:-1:-1;;;;;599:316:15:o;162:23::-;;;;;;:::o;1231:276::-;1413:11;;;;;;;1412:12;1404:21;;;;;;1435:65;1449:11;1462:10;1474:8;1484:7;1493:6;1435:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;:::o;921:304::-;1094:15;1130:11;;;;;;;1129:12;1121:21;;;;;;1152:66;1167:11;1180:10;1192:8;1202:7;1211:6;1152:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;:::o" + "object": "6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029", + "sourceMap": "122:1388:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;599:316:14;;-1:-1:-1;;;599:316:14;;;;;-1:-1:-1;599:316:14;;-1:-1:-1;;599:316:14;;;162:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;747:11;;;;;;;739:20;;;;;;;;781:14;:25;;;807:4;813:3;826:4;833:13;848:1;873:4;781:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:9:14;:110;;-1:-1:-1;;769:110:14;;;;;;;;;;-1:-1:-1;;889:19:14;;;-1:-1:-1;;;;;599:316:14:o;162:23::-;;;;;;:::o;1231:276::-;1413:11;;;;;;;1412:12;1404:21;;;;;;1435:65;1449:11;1462:10;1474:8;1484:7;1493:6;1435:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;:::o;921:304::-;1094:15;1130:11;;;;;;;1129:12;1121:21;;;;;;1152:66;1167:11;1180:10;1192:8;1202:7;1211:6;1152:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -8785,13 +8400,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029", - "sourceMap": "168:314:16:-;;;;;;;;;;;;;;;;;" + "object": "6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029", + "sourceMap": "168:314:15:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a7230582025c8800706b085b9c5832c8e19fedc0e39c3eae27ae763cc95e27975d6785cb80029a165627a7a72305820ed7ca1dfde946569a507d6308a7f122a4f2c15d48fa8879aac75b8b46110f4550029", - "sourceMap": "168:314:16:-;;;;;;;;;;;;;;;;;;;;;;;215:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:264:16;;-1:-1:-1;;;215:264:16;;;;;-1:-1:-1;215:264:16;;-1:-1:-1;;215:264:16;;;;357:25;385:29;;:::i;:::-;;;;;;;;;;;;;;;;;;357:57;;424:1;:6;;;431:14;447:4;453:3;458:13;424:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:264:16;;;;;:::o;168:314::-;;;;;;;;;;:::o" + "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029", + "sourceMap": "168:314:15:-;;;;;;;;;;;;;;;;;;;;;;;215:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:264:15;;-1:-1:-1;;;215:264:15;;;;;-1:-1:-1;215:264:15;;-1:-1:-1;;215:264:15;;;;357:25;385:29;;:::i;:::-;;;;;;;;;;;;;;;;;;357:57;;424:1;:6;;;431:14;447:4;453:3;458:13;424:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:264:15;;;;;:::o;168:314::-;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -9359,12 +8974,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "231:13878:17:-;;;;;;;;;;;;;;;;;" + "sourceMap": "231:13878:16:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "231:13878:17:-;;;;;;;;;-1:-1:-1;;;231:13878:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3939:165;;;;;;;;;;-1:-1:-1;;;;;3939:165:17;;;;;;;;;;;;;;281:60;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;4664:365:17;;;;;;;;;;-1:-1:-1;;;;;4664:365:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4664:365:17;;-1:-1:-1;4664:365:17;;-1:-1:-1;;;;;;4664:365:17;7973:211;;;;;;;;;;-1:-1:-1;;;;;7973:211:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;484:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;484:52:17;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;5465:256:17;;;;;;;;;;-1:-1:-1;;;;;5465:256:17;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;6045:208:17;;;;;;;;;;-1:-1:-1;;;;;6045:208:17;;;;;;;;;;;;6465:153;;;;;;;;;;-1:-1:-1;;;;;6465:153:17;;;;;;;;;;-1:-1:-1;;;;;6465:153:17;;;;;;;;;;;;;;;3190:250;;;;;;;;;;-1:-1:-1;;;;;3190:250:17;;;;;;;;;;;;;;;;;;2179:244;;;;;;;;;;-1:-1:-1;;;;;2179:244:17;;;;;1371:64;;;;;;;;;;;;86:21:23;;;;;;;;;;;;7398:569:17;;;;;;;;;;-1:-1:-1;;;;;7398:569:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7398:569:17;;-1:-1:-1;7398:569:17;;-1:-1:-1;;;;;;7398:569:17;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;6984:408:17;;;;;;;;;;-1:-1:-1;;;;;6984:408:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6984:408:17;;-1:-1:-1;6984:408:17;;-1:-1:-1;;;;;;6984:408:17;3939:165;4041:56;4058:7;4067:4;4073:5;4094:1;4080:16;;;;;;;;;;;;;;;;;;;;;;;;4041;:56::i;:::-;3939:165;;;:::o;281:60::-;339:1;281:60;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;4664:365:17:-;4883:18;4785:4;4791:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:17;;;;;;1559:56;;;;;;4836:35;4850:7;4859:4;4865:5;4836:13;:35::i;:::-;4835:36;4827:45;;;;;;4921:1;4904:7;:14;:18;:60;;1432:1;1414:21;;;;;;;;;;;;;;4904:60;;;4925:20;4937:7;4925:11;:20::i;:::-;4883:81;;4974:48;4989:7;4998:4;5004:5;5011:10;4974:14;:48::i;:::-;4664:365;;;;;;;:::o;7973:211::-;8062:4;8078:22;;:::i;:::-;8117:1;8103:16;;;;;;;;;;;;;;;;;;;;;;;;8078:41;;8136;8150:4;8156:6;8164:5;8171;8136:13;:41::i;:::-;8129:48;7973:211;-1:-1:-1;;;;;7973:211:17:o;484:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;484:52:17;;;;;-1:-1:-1;484:52:17;;;-1:-1:-1;;;;;484:52:17;;:::o;113:20:23:-;;;;:::o;269:107:27:-;350:19;;269:107;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;5465:256:17:-;5567:4;5573:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:17;;;;;;1559:56;;;;;;5619:35;5633:7;5642:4;5648:5;5619:13;:35::i;:::-;5611:44;;;;;;;;5666:48;5681:7;5690:4;5696:5;5711:1;5666:14;:48::i;:::-;5465:256;;;;;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;6045:208:17:-;6155:4;6161:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:17;;;;;;1559:56;;;;;;6199:47;6221:11;6234:4;6240:5;6199:21;:47::i;6465:153::-;6545:7;6571:17;:40;6589:21;6598:4;6604:5;6589:8;:21::i;:::-;6571:40;;;;;;;;;;;-1:-1:-1;6571:40:17;;-1:-1:-1;;;;;6571:40:17;;;-1:-1:-1;;;6465:153:17:o;3190:250::-;3307:65;3321:10;3341:4;339:1;3307:13;:65::i;:::-;3299:74;;;;;;;;3384:49;3402:7;3411:4;3417:5;3424:8;3384:17;:49::i;:::-;3190:250;;;;:::o;2179:244::-;140:19:27;;:24;132:33;;;;;;2254:13:17;:11;:13::i;:::-;2307:6;;2285:10;-1:-1:-1;;;;;2285:29:17;;;2307:6;;2285:29;2277:38;;;;;;2326:90;2344:19;2365:4;339:1;2344:19;2326:17;:90::i;:::-;2179:244;:::o;1371:64::-;1432:1;1414:21;;;;;;;;;;;;;;1371:64;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;7398:569:17:-;7510:4;7526:17;7731;7546:11;:48;7558:35;7573:4;7579:6;7587:5;7558:14;:35::i;:::-;7546:48;;;;;;;;;;;;;;;-1:-1:-1;7608:23:17;;;;;:75;;;7635:48;7646:9;7657:4;7663:6;7671:5;7678:4;7635:10;:48::i;:::-;7604:117;;;7706:4;7699:11;;;;7604:117;7751:11;:54;7763:41;-1:-1:-1;;7790:6:17;7798:5;7763:14;:41::i;:::-;7751:54;;;;;;;;;;;;;;;-1:-1:-1;7819:23:17;;;;;:81;;-1:-1:-1;7846:54:17;7857:9;-1:-1:-1;;7880:6:17;7888:5;7895:4;7846:10;:54::i;:::-;7815:123;;;7923:4;7916:11;;;;7815:123;7955:5;7948:12;;7398:569;;;;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;6984:408:17:-;7092:4;7108:20;;:::i;:::-;7138:18;7173:2;7159:4;:11;:16;;;;;;;;7138:37;;7215:4;7208:11;;7262:10;7257:3;7250:6;7346:39;7360:4;7366:6;7374:5;7381:3;7346:13;:39::i;:::-;7339:46;6984:408;-1:-1:-1;;;;;;;6984:408:17:o;9014:596::-;9079:7;9098:17;9153:22;9286:9;9351:20;9409:18;;:::i;:::-;9128:14;9118:25;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;9178:27:17;;;;:16;:27;;;;;9220:13;;3:109:-1;;-1:-1;9178:27:17;-1:-1:-1;9220:18:17;9216:361;;;9298:1;9286:13;;9281:286;9305:14;:21;9301:1;:25;9281:286;;;9374:14;9389:1;9374:17;;;;;;;;;;;;;;;;9351:40;;9430:86;;;;;;;;;9436:27;9450:12;9436:13;:27::i;:::-;9430:86;;;;;;9465:27;9479:12;9465:13;:27::i;:::-;9430:86;;;;-1:-1:-1;;;;;9430:86:17;;;;;;;9534:18;;9409:107;;-1:-1:-1;9534:18:17;;-1:-1:-1;9534:18:17;;;;;;:::i;:::-;;;;;;;;;9546:5;;9534:18;9546:5;9534:18;;;-1:-1:-1;;9534:18:17;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9534:18:17;;;;;;;;;;;;-1:-1:-1;;;;;9534:18:17;;;;;;;;;;;;;-1:-1:-1;;;9328:3:17;;;;;9281:286;;;-1:-1:-1;9594:9:17;;9014:596;-1:-1:-1;;;;;9014:596:17:o;8755:253::-;8917:11;8865;:49;8877:36;8892:7;8901:4;8907:5;8877:14;:36::i;:::-;8865:49;;;;;;;;;;;;;-1:-1:-1;8865:49:17;:63;;;;8968:5;;-1:-1:-1;;;;;8939:62:17;;;;;;;;;;8975:25;;;;8939:62;;;;;;;;;;;;;;;8755:253;;;;:::o;13350:220::-;13493:11;13450:17;:40;13468:21;13477:4;13483:5;13468:8;:21::i;:::-;13450:40;;;;;;;;;;;;;-1:-1:-1;13450:40:17;:54;;-1:-1:-1;;13450:54:17;-1:-1:-1;;;;;13450:54:17;;;;;;13514:49;;;;13544:5;;13514:49;;;;;;;;;;;;;;13350:220;;;:::o;13576:141::-;13648:7;13692:1;13696:6;13704:5;13674:36;;;;;-1:-1:-1;;;;;13674:36:17;;;;;;;;;;;;;;;;;;;;;;;13667:43;;13576:141;;;;:::o;8290:376::-;8537:1;8492:33;8513:4;8519:5;8492:20;:33::i;:::-;-1:-1:-1;;;;;8492:47:17;;8484:56;;;;;;8551:54;8566:7;8575:4;8581:5;1432:1;1414:21;;;;;;;;;;;;;;8551:14;:54::i;:::-;8615:44;8637:8;8647:4;8653:5;8615:21;:44::i;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;13723:167:17:-;13815:7;13859:1;13863:4;13869:6;13877:5;13841:42;;;;;;-1:-1:-1;;;;;13841:42:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13834:49;;13723:167;;;;;;:::o;9616:340::-;9787:4;1432:1;1414:21;;;;;;;;;;;;;;;9811:31;;9807:73;;;-1:-1:-1;9865:4:17;9858:11;;9807:73;9897:52;9907:11;9920:1;9923:4;9929:6;9937:5;9944:4;9897:9;:52::i;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;2426:112:18:-;2516:14;;;;2426:112::o;2308:::-;2398:14;;;;2308:112::o;767:94:27:-;842:12;767:94;:::o;9962:1478:17:-;10157:4;10295:18;;:::i;:::-;10499:13;10193:29;;;:16;:29;;;;;:36;10499:13;;10181:48;;;;10177:108;;10252:5;10245:12;;;;10177:108;10316:29;;;;:16;:29;;;;;:39;;;;;;;;;;;;;;;;;;;;10295:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10295:60:17;;;;;;;;;-1:-1:-1;1268:3:17;10295:60;10370:8;:29;;;10366:123;;;10422:56;10432:5;10439:11;10452:4;10458:6;10466:5;10473:4;10422:9;:56::i;:::-;10415:63;;;;10366:123;10551:5;:11;;;-1:-1:-1;;;;;10543:20:17;;-1:-1:-1;1220:3:17;10599:5;:8;:27;;;10595:693;;;10660:5;:11;;;-1:-1:-1;;;;;10650:33:17;;10684:4;10690:6;10698:5;10650:54;;;;;;;;-1:-1:-1;;;10650:54:17;;;;;;-1:-1:-1;;;;;10650:54:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:62;;10711:1;10650:62;;;10707:1;10650:62;10642:70;;;;10739:1;10726:14;;10595:693;;;1076:3;10761:5;:8;:33;;;10757:531;;;10818:8;:6;:8::i;:::-;10810:16;;10757:531;;;1124:3;10847:5;:8;:30;;;10843:445;;;10901:6;:4;:6::i;:::-;10893:14;;;;10843:445;;;1172:3;10928:5;:8;:27;;;10924:364;;;10987:10;-1:-1:-1;;;;;10979:19:17;;-1:-1:-1;10924:364:17;;;1316:3;11019:5;:8;:32;;;11015:273;;;11083:5;:11;;;-1:-1:-1;;;;;11075:20:17;;-1:-1:-1;11015:273:17;;;11142:4;:11;11130:5;:8;:23;;;11126:74;;11180:5;11173:12;;;;11126:74;11237:4;11242:5;:8;11237:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11221:32:17;;-1:-1:-1;11015:273:17;11318:6;11305:5;:8;;;11302:12;;;;;;;;;;:22;;;;;;;;;11298:78;;;11364:1;11355:5;11347:18;11340:25;;;;11298:78;11393:40;11401:5;11411;:8;;;11408:12;;;;;;;;;;11422:10;11393:7;:40::i;:::-;11386:47;;9962:1478;;;;;;;;;;;;:::o;11446:1102::-;11584:4;;;;;;;;;11621:10;11607:6;:9;;;11604:13;;;;;;;;;;:27;;;;;;;;;11600:320;;;11683:39;11708:6;:12;;;-1:-1:-1;;;;;11700:21:17;11683:16;:39::i;:::-;11647:75;;;;;;11750:60;11760:11;11773:9;11784:4;11790:6;11798:5;11805:4;11750:9;:60::i;:::-;11736:74;;11832:77;11842:11;11855:6;:26;;11874:7;11855:26;;;11864:7;11855:26;11883:4;11889:6;11897:5;11904:4;11832:9;:77::i;:::-;11825:84;;;;11600:320;11946:39;11971:6;:12;;;-1:-1:-1;;;;;11963:21:17;11946:16;:39::i;:::-;11930:55;;;;;12005:53;12015:11;12028:2;12032:4;12038:6;12046:5;12053:4;12005:9;:53::i;:::-;11995:63;-1:-1:-1;12090:6:17;12076;:9;;;12073:13;;;;;;;;;;:23;;;;;;;;;12069:64;;;12120:2;12119:3;12112:10;;;;12069:64;12147:2;:28;;;;-1:-1:-1;12170:5:17;12156:6;:9;;;12153:13;;;;;;;;;;:22;;;;;;;;;12147:28;12143:70;;;12198:4;12191:11;;;;12143:70;12228:2;12227:3;:30;;;;-1:-1:-1;12251:6:17;12237;:9;;;12234:13;;;;;;;;;;:23;;;;;;;;;12227:30;12223:73;;;12280:5;12273:12;;;;12223:73;12316:53;12326:11;12339:2;12343:4;12349:6;12357:5;12364:4;12316:9;:53::i;:::-;12306:63;-1:-1:-1;12401:6:17;12387;:9;;;12384:13;;;;;;;;;;:23;;;;;;;;;12380:87;;;12431:2;:9;;;;;12438:2;12437:3;12431:9;12430:26;;;;12447:2;12446:3;:9;;;;;12453:2;12423:33;;;;12380:87;12484:2;12477:9;;11446:1102;;;;;;;;;;;;;;;;;:::o;13896:82::-;13959:15;13896:82;:::o;12554:725::-;12626:4;12653:5;12646:3;:12;;;;;;;;;12642:34;;;-1:-1:-1;12668:8:17;;;12661:15;;12642:34;12756:6;12749:3;:13;;;;;;;;;12745:34;;;-1:-1:-1;12771:8:17;;;;12764:15;;12745:34;12859:5;12852:3;:12;;;;;;;;;12848:33;;;-1:-1:-1;12874:7:17;;;12867:14;;12848:33;12962:5;12955:3;:12;;;;;;;;;12951:33;;;-1:-1:-1;12977:7:17;;;12970:14;;12951:33;13065:6;13058:3;:13;;;;;;;;;13054:34;;;-1:-1:-1;13080:8:17;;;;13073:15;;13054:34;13168:6;13161:3;:13;;;;;;;;;13157:34;;;-1:-1:-1;13183:8:17;;;;13176:15;;13157:34;-1:-1:-1;13267:5:17;12554:725;;;;;:::o;2544:192:18:-;2656:2;2680:13;;;;2715;;;;2544:192::o;231:13878:17:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + "sourceMap": "231:13878:16:-;;;;;;;;;-1:-1:-1;;;231:13878:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3939:165;;;;;;;;;;-1:-1:-1;;;;;3939:165:16;;;;;;;;;;;;;;281:60;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;4664:365:16;;;;;;;;;;-1:-1:-1;;;;;4664:365:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4664:365:16;;-1:-1:-1;4664:365:16;;-1:-1:-1;;;;;;4664:365:16;7973:211;;;;;;;;;;-1:-1:-1;;;;;7973:211:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;484:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;484:52:16;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;5465:256:16;;;;;;;;;;-1:-1:-1;;;;;5465:256:16;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;6045:208:16;;;;;;;;;;-1:-1:-1;;;;;6045:208:16;;;;;;;;;;;;6465:153;;;;;;;;;;-1:-1:-1;;;;;6465:153:16;;;;;;;;;;-1:-1:-1;;;;;6465:153:16;;;;;;;;;;;;;;;3190:250;;;;;;;;;;-1:-1:-1;;;;;3190:250:16;;;;;;;;;;;;;;;;;;2179:244;;;;;;;;;;-1:-1:-1;;;;;2179:244:16;;;;;1371:64;;;;;;;;;;;;86:21:22;;;;;;;;;;;;7398:569:16;;;;;;;;;;-1:-1:-1;;;;;7398:569:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7398:569:16;;-1:-1:-1;7398:569:16;;-1:-1:-1;;;;;;7398:569:16;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;6984:408:16;;;;;;;;;;-1:-1:-1;;;;;6984:408:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6984:408:16;;-1:-1:-1;6984:408:16;;-1:-1:-1;;;;;;6984:408:16;3939:165;4041:56;4058:7;4067:4;4073:5;4094:1;4080:16;;;;;;;;;;;;;;;;;;;;;;;;4041;:56::i;:::-;3939:165;;;:::o;281:60::-;339:1;281:60;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;4664:365:16:-;4883:18;4785:4;4791:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:16;;;;;;1559:56;;;;;;4836:35;4850:7;4859:4;4865:5;4836:13;:35::i;:::-;4835:36;4827:45;;;;;;4921:1;4904:7;:14;:18;:60;;1432:1;1414:21;;;;;;;;;;;;;;4904:60;;;4925:20;4937:7;4925:11;:20::i;:::-;4883:81;;4974:48;4989:7;4998:4;5004:5;5011:10;4974:14;:48::i;:::-;4664:365;;;;;;;:::o;7973:211::-;8062:4;8078:22;;:::i;:::-;8117:1;8103:16;;;;;;;;;;;;;;;;;;;;;;;;8078:41;;8136;8150:4;8156:6;8164:5;8171;8136:13;:41::i;:::-;8129:48;7973:211;-1:-1:-1;;;;;7973:211:16:o;484:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;484:52:16;;;;;-1:-1:-1;484:52:16;;;-1:-1:-1;;;;;484:52:16;;:::o;113:20:22:-;;;;:::o;269:107:26:-;350:19;;269:107;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;5465:256:16:-;5567:4;5573:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:16;;;;;;1559:56;;;;;;5619:35;5633:7;5642:4;5648:5;5619:13;:35::i;:::-;5611:44;;;;;;;;5666:48;5681:7;5690:4;5696:5;5711:1;5666:14;:48::i;:::-;5465:256;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;6045:208:16:-;6155:4;6161:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:16;;;;;;1559:56;;;;;;6199:47;6221:11;6234:4;6240:5;6199:21;:47::i;6465:153::-;6545:7;6571:17;:40;6589:21;6598:4;6604:5;6589:8;:21::i;:::-;6571:40;;;;;;;;;;;-1:-1:-1;6571:40:16;;-1:-1:-1;;;;;6571:40:16;;;-1:-1:-1;;;6465:153:16:o;3190:250::-;3307:65;3321:10;3341:4;339:1;3307:13;:65::i;:::-;3299:74;;;;;;;;3384:49;3402:7;3411:4;3417:5;3424:8;3384:17;:49::i;:::-;3190:250;;;;:::o;2179:244::-;140:19:26;;:24;132:33;;;;;;2254:13:16;:11;:13::i;:::-;2307:6;;2285:10;-1:-1:-1;;;;;2285:29:16;;;2307:6;;2285:29;2277:38;;;;;;2326:90;2344:19;2365:4;339:1;2344:19;2326:17;:90::i;:::-;2179:244;:::o;1371:64::-;1432:1;1414:21;;;;;;;;;;;;;;1371:64;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;7398:569:16:-;7510:4;7526:17;7731;7546:11;:48;7558:35;7573:4;7579:6;7587:5;7558:14;:35::i;:::-;7546:48;;;;;;;;;;;;;;;-1:-1:-1;7608:23:16;;;;;:75;;;7635:48;7646:9;7657:4;7663:6;7671:5;7678:4;7635:10;:48::i;:::-;7604:117;;;7706:4;7699:11;;;;7604:117;7751:11;:54;7763:41;-1:-1:-1;;7790:6:16;7798:5;7763:14;:41::i;:::-;7751:54;;;;;;;;;;;;;;;-1:-1:-1;7819:23:16;;;;;:81;;-1:-1:-1;7846:54:16;7857:9;-1:-1:-1;;7880:6:16;7888:5;7895:4;7846:10;:54::i;:::-;7815:123;;;7923:4;7916:11;;;;7815:123;7955:5;7948:12;;7398:569;;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;6984:408:16:-;7092:4;7108:20;;:::i;:::-;7138:18;7173:2;7159:4;:11;:16;;;;;;;;7138:37;;7215:4;7208:11;;7262:10;7257:3;7250:6;7346:39;7360:4;7366:6;7374:5;7381:3;7346:13;:39::i;:::-;7339:46;6984:408;-1:-1:-1;;;;;;;6984:408:16:o;9014:596::-;9079:7;9098:17;9153:22;9286:9;9351:20;9409:18;;:::i;:::-;9128:14;9118:25;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;9178:27:16;;;;:16;:27;;;;;9220:13;;3:109:-1;;-1:-1;9178:27:16;-1:-1:-1;9220:18:16;9216:361;;;9298:1;9286:13;;9281:286;9305:14;:21;9301:1;:25;9281:286;;;9374:14;9389:1;9374:17;;;;;;;;;;;;;;;;9351:40;;9430:86;;;;;;;;;9436:27;9450:12;9436:13;:27::i;:::-;9430:86;;;;;;9465:27;9479:12;9465:13;:27::i;:::-;9430:86;;;;-1:-1:-1;;;;;9430:86:16;;;;;;;9534:18;;9409:107;;-1:-1:-1;9534:18:16;;-1:-1:-1;9534:18:16;;;;;;:::i;:::-;;;;;;;;;9546:5;;9534:18;9546:5;9534:18;;;-1:-1:-1;;9534:18:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9534:18:16;;;;;;;;;;;;-1:-1:-1;;;;;9534:18:16;;;;;;;;;;;;;-1:-1:-1;;;9328:3:16;;;;;9281:286;;;-1:-1:-1;9594:9:16;;9014:596;-1:-1:-1;;;;;9014:596:16:o;8755:253::-;8917:11;8865;:49;8877:36;8892:7;8901:4;8907:5;8877:14;:36::i;:::-;8865:49;;;;;;;;;;;;;-1:-1:-1;8865:49:16;:63;;;;8968:5;;-1:-1:-1;;;;;8939:62:16;;;;;;;;;;8975:25;;;;8939:62;;;;;;;;;;;;;;;8755:253;;;;:::o;13350:220::-;13493:11;13450:17;:40;13468:21;13477:4;13483:5;13468:8;:21::i;:::-;13450:40;;;;;;;;;;;;;-1:-1:-1;13450:40:16;:54;;-1:-1:-1;;13450:54:16;-1:-1:-1;;;;;13450:54:16;;;;;;13514:49;;;;13544:5;;13514:49;;;;;;;;;;;;;;13350:220;;;:::o;13576:141::-;13648:7;13692:1;13696:6;13704:5;13674:36;;;;;-1:-1:-1;;;;;13674:36:16;;;;;;;;;;;;;;;;;;;;;;;13667:43;;13576:141;;;;:::o;8290:376::-;8537:1;8492:33;8513:4;8519:5;8492:20;:33::i;:::-;-1:-1:-1;;;;;8492:47:16;;8484:56;;;;;;8551:54;8566:7;8575:4;8581:5;1432:1;1414:21;;;;;;;;;;;;;;8551:14;:54::i;:::-;8615:44;8637:8;8647:4;8653:5;8615:21;:44::i;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;13723:167:16:-;13815:7;13859:1;13863:4;13869:6;13877:5;13841:42;;;;;;-1:-1:-1;;;;;13841:42:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13834:49;;13723:167;;;;;;:::o;9616:340::-;9787:4;1432:1;1414:21;;;;;;;;;;;;;;;9811:31;;9807:73;;;-1:-1:-1;9865:4:16;9858:11;;9807:73;9897:52;9907:11;9920:1;9923:4;9929:6;9937:5;9944:4;9897:9;:52::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;2426:112:17:-;2516:14;;;;2426:112::o;2308:::-;2398:14;;;;2308:112::o;767:94:26:-;842:12;767:94;:::o;9962:1478:16:-;10157:4;10295:18;;:::i;:::-;10499:13;10193:29;;;:16;:29;;;;;:36;10499:13;;10181:48;;;;10177:108;;10252:5;10245:12;;;;10177:108;10316:29;;;;:16;:29;;;;;:39;;;;;;;;;;;;;;;;;;;;10295:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10295:60:16;;;;;;;;;-1:-1:-1;1268:3:16;10295:60;10370:8;:29;;;10366:123;;;10422:56;10432:5;10439:11;10452:4;10458:6;10466:5;10473:4;10422:9;:56::i;:::-;10415:63;;;;10366:123;10551:5;:11;;;-1:-1:-1;;;;;10543:20:16;;-1:-1:-1;1220:3:16;10599:5;:8;:27;;;10595:693;;;10660:5;:11;;;-1:-1:-1;;;;;10650:33:16;;10684:4;10690:6;10698:5;10650:54;;;;;;;;-1:-1:-1;;;10650:54:16;;;;;;-1:-1:-1;;;;;10650:54:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:62;;10711:1;10650:62;;;10707:1;10650:62;10642:70;;;;10739:1;10726:14;;10595:693;;;1076:3;10761:5;:8;:33;;;10757:531;;;10818:8;:6;:8::i;:::-;10810:16;;10757:531;;;1124:3;10847:5;:8;:30;;;10843:445;;;10901:6;:4;:6::i;:::-;10893:14;;;;10843:445;;;1172:3;10928:5;:8;:27;;;10924:364;;;10987:10;-1:-1:-1;;;;;10979:19:16;;-1:-1:-1;10924:364:16;;;1316:3;11019:5;:8;:32;;;11015:273;;;11083:5;:11;;;-1:-1:-1;;;;;11075:20:16;;-1:-1:-1;11015:273:16;;;11142:4;:11;11130:5;:8;:23;;;11126:74;;11180:5;11173:12;;;;11126:74;11237:4;11242:5;:8;11237:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11221:32:16;;-1:-1:-1;11015:273:16;11318:6;11305:5;:8;;;11302:12;;;;;;;;;;:22;;;;;;;;;11298:78;;;11364:1;11355:5;11347:18;11340:25;;;;11298:78;11393:40;11401:5;11411;:8;;;11408:12;;;;;;;;;;11422:10;11393:7;:40::i;:::-;11386:47;;9962:1478;;;;;;;;;;;;:::o;11446:1102::-;11584:4;;;;;;;;;11621:10;11607:6;:9;;;11604:13;;;;;;;;;;:27;;;;;;;;;11600:320;;;11683:39;11708:6;:12;;;-1:-1:-1;;;;;11700:21:16;11683:16;:39::i;:::-;11647:75;;;;;;11750:60;11760:11;11773:9;11784:4;11790:6;11798:5;11805:4;11750:9;:60::i;:::-;11736:74;;11832:77;11842:11;11855:6;:26;;11874:7;11855:26;;;11864:7;11855:26;11883:4;11889:6;11897:5;11904:4;11832:9;:77::i;:::-;11825:84;;;;11600:320;11946:39;11971:6;:12;;;-1:-1:-1;;;;;11963:21:16;11946:16;:39::i;:::-;11930:55;;;;;12005:53;12015:11;12028:2;12032:4;12038:6;12046:5;12053:4;12005:9;:53::i;:::-;11995:63;-1:-1:-1;12090:6:16;12076;:9;;;12073:13;;;;;;;;;;:23;;;;;;;;;12069:64;;;12120:2;12119:3;12112:10;;;;12069:64;12147:2;:28;;;;-1:-1:-1;12170:5:16;12156:6;:9;;;12153:13;;;;;;;;;;:22;;;;;;;;;12147:28;12143:70;;;12198:4;12191:11;;;;12143:70;12228:2;12227:3;:30;;;;-1:-1:-1;12251:6:16;12237;:9;;;12234:13;;;;;;;;;;:23;;;;;;;;;12227:30;12223:73;;;12280:5;12273:12;;;;12223:73;12316:53;12326:11;12339:2;12343:4;12349:6;12357:5;12364:4;12316:9;:53::i;:::-;12306:63;-1:-1:-1;12401:6:16;12387;:9;;;12384:13;;;;;;;;;;:23;;;;;;;;;12380:87;;;12431:2;:9;;;;;12438:2;12437:3;12431:9;12430:26;;;;12447:2;12446:3;:9;;;;;12453:2;12423:33;;;;12380:87;12484:2;12477:9;;11446:1102;;;;;;;;;;;;;;;;;:::o;13896:82::-;13959:15;13896:82;:::o;12554:725::-;12626:4;12653:5;12646:3;:12;;;;;;;;;12642:34;;;-1:-1:-1;12668:8:16;;;12661:15;;12642:34;12756:6;12749:3;:13;;;;;;;;;12745:34;;;-1:-1:-1;12771:8:16;;;;12764:15;;12745:34;12859:5;12852:3;:12;;;;;;;;;12848:33;;;-1:-1:-1;12874:7:16;;;12867:14;;12848:33;12962:5;12955:3;:12;;;;;;;;;12951:33;;;-1:-1:-1;12977:7:16;;;12970:14;;12951:33;13065:6;13058:3;:13;;;;;;;;;13054:34;;;-1:-1:-1;13080:8:16;;;;13073:15;;13054:34;13168:6;13161:3;:13;;;;;;;;;13157:34;;;-1:-1:-1;13183:8:16;;;;13176:15;;13157:34;-1:-1:-1;13267:5:16;12554:725;;;;;:::o;2544:192:17:-;2656:2;2680:13;;;;2715;;;;2544:192::o;231:13878:16:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "gasEstimates": { "creation": { @@ -9519,12 +9134,12 @@ "bytecode": { "linkReferences": {}, "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029", - "sourceMap": "2282:456:18:-;;;;;;;;;;;;;;;;;" + "sourceMap": "2282:456:17:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029", - "sourceMap": "2282:456:18:-;;;;;" + "sourceMap": "2282:456:17:-;;;;;" }, "gasEstimates": { "creation": { @@ -9553,12 +9168,12 @@ "bytecode": { "linkReferences": {}, "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029", - "sourceMap": "26:2253:18:-;;;;;;;;;;;;;;;;;" + "sourceMap": "26:2253:17:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029", - "sourceMap": "26:2253:18:-;;;;;" + "sourceMap": "26:2253:17:-;;;;;" }, "gasEstimates": { "creation": { @@ -10070,12 +9685,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029", - "sourceMap": "56:837:21:-;;;385:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:20;576:16;;-1:-1:-1;;;;;;576:16:20;-1:-1:-1;;;;;576:16:20;;;;;-1:-1:-1;602:14:20;;;385:247:21;;;576:16:20;;-1:-1:-1;602:14:20;;385:247:21;;918:17:20;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:20;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:20;;;;;;;;478:847;;;;565:17:21;576:5;;565:10;;;;;:17;;;:::i;:::-;552:10;:30;;-1:-1:-1;;;;;;552:30:21;-1:-1:-1;;;;;552:30:21;;;;;;;;600:10;:24;;592:33;;;;;;385:247;;;56:837;;1331:145:20;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:20;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o;56:837:21:-;;;;;;;" + "sourceMap": "56:837:20:-;;;385:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:19;576:16;;-1:-1:-1;;;;;;576:16:19;-1:-1:-1;;;;;576:16:19;;;;;-1:-1:-1;602:14:19;;;385:247:20;;;576:16:19;;-1:-1:-1;602:14:19;;385:247:20;;918:17:19;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:19;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:19;;;;;;;;478:847;;;;565:17:20;576:5;;565:10;;;;;:17;;;:::i;:::-;552:10;:30;;-1:-1:-1;;;;;;552:30:20;-1:-1:-1;;;;;552:30:20;;;;;;;;600:10;:24;;592:33;;;;;;385:247;;;56:837;;1331:145:19;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:19;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o;56:837:20:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029", - "sourceMap": "56:837:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:33;864:9;:7;:9::i;:::-;875:8;;851:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;851:12:21;;-1:-1:-1;;;;;851:33:21:i;:::-;56:837;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;113:20:23;;;;;;;;;;;;492:75:42;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:81:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:42;;;;;;;;;;;;638:83:21;;;;;;;;;;;704:10;;;;638:83;:::o;311:628:26:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:23:-;;;;:::o;492:75:42:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:23:-;;;;;;:::o;727:81:21:-;773:4;727:81;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o;1331:145:20:-;1390:7;1416:6;;;;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o" + "sourceMap": "56:837:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:33;864:9;:7;:9::i;:::-;875:8;;851:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;851:12:20;;-1:-1:-1;;;;;851:33:20:i;:::-;56:837;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;113:20:22;;;;;;;;;;;;492:75:41;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:81:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:41;;;;;;;;;;;;638:83:20;;;;;;;;;;;704:10;;;;638:83;:::o;311:628:25:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:22:-;;;;:::o;492:75:41:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:22:-;;;;;;:::o;727:81:20:-;773:4;727:81;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o;1331:145:19:-;1390:7;1416:6;;;;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o" }, "gasEstimates": { "creation": { @@ -10320,12 +9935,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029", - "sourceMap": "56:722:22:-;;;424:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:20;576:16;;-1:-1:-1;;;;;;576:16:20;-1:-1:-1;;;;;576:16:20;;;;;-1:-1:-1;602:14:20;;;424:170:22;;;576:16:20;;-1:-1:-1;602:14:20;;424:170:22;;918:17:20;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:20;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:20;;;;;;;;478:847;;;;424:170:22;;;56:722;;1331:145:20;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:20;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o;56:722:22:-;;;;;;;" + "sourceMap": "56:722:21:-;;;424:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:19;576:16;;-1:-1:-1;;;;;;576:16:19;-1:-1:-1;;;;;576:16:19;;;;;-1:-1:-1;602:14:19;;;424:170:21;;;576:16:19;;-1:-1:-1;602:14:19;;424:170:21;;918:17:19;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:19;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:19;;;;;;;;478:847;;;;424:170:21;;;56:722;;1331:145:19;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:19;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o;56:722:21:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029", - "sourceMap": "56:722:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1519:14:20;1536:9;:7;:9::i;:::-;1519:26;-1:-1:-1;1563:11:20;;;;;1555:20;;;;;;1632:30;1645:6;1653:8;;1632:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1632:12:20;;-1:-1:-1;;;;;1632:30:20:i;:::-;1482:187;56:722:22;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;107:25:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58:42;;;;;;;;;;;;113:20:23;;;;;;;;;;;;492:75:42;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:23;;;;;;;;;;;;696:80:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:42;;;;;;;;;;;;600:90:22;;;;;;;;;;;640:7;666:17;677:5;;666:10;:17::i;:::-;659:24;;600:90;:::o;311:628:26:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;107:25:22:-;;;;;;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:23:-;;;;:::o;492:75:42:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:23:-;;;;;;:::o;696:80:22:-;765:4;696:80;:::o;121:63:42:-;167:17;;;;;;;;;;;;;;121:63;:::o;1331:145:20:-;1390:7;1416:6;;;;:13;167:17:42;;;;;;;;;;;;;;1461:6:20;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:20:o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o" + "sourceMap": "56:722:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1519:14:19;1536:9;:7;:9::i;:::-;1519:26;-1:-1:-1;1563:11:19;;;;;1555:20;;;;;;1632:30;1645:6;1653:8;;1632:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1632:12:19;;-1:-1:-1;;;;;1632:30:19:i;:::-;1482:187;56:722:21;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;107:25:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58:41;;;;;;;;;;;;113:20:22;;;;;;;;;;;;492:75:41;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:22;;;;;;;;;;;;696:80:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:41;;;;;;;;;;;;600:90:21;;;;;;;;;;;640:7;666:17;677:5;;666:10;:17::i;:::-;659:24;;600:90;:::o;311:628:25:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;107:25:21:-;;;;;;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:22:-;;;;:::o;492:75:41:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:22:-;;;;;;:::o;696:80:21:-;765:4;696:80;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o;1331:145:19:-;1390:7;1416:6;;;;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o" }, "gasEstimates": { "creation": { @@ -10408,12 +10023,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029", - "sourceMap": "60:317:23:-;;;;;;;;;;;;;;;;;" + "sourceMap": "60:317:22:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029", - "sourceMap": "60:317:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;86:21::-;;;;;;:::o" + "sourceMap": "60:317:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;86:21::-;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -10567,12 +10182,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029", - "sourceMap": "172:830:24:-;;;;;;;;;;;;;;;;;" + "sourceMap": "172:830:23:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029", - "sourceMap": "172:830:24:-;;;;;;;;;-1:-1:-1;;;172:830:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;;;;;;;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:23;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;269:107:27:-;350:19;;269:107;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;1021:200::-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;172:830:24;;;;;;;;;;;;;:::o" + "sourceMap": "172:830:23:-;;;;;;;;;-1:-1:-1;;;172:830:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;;;;;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;1021:200::-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;172:830:23;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -10672,12 +10287,12 @@ "bytecode": { "linkReferences": {}, "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029", - "sourceMap": "26:1091:26:-;;;;;;;;;;;;;;;;;" + "sourceMap": "26:1091:25:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029", - "sourceMap": "26:1091:26:-;;;;;" + "sourceMap": "26:1091:25:-;;;;;" }, "gasEstimates": { "creation": { @@ -10754,12 +10369,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029", - "sourceMap": "61:802:27:-;;;;;;;;;;;;;;;;;" + "sourceMap": "61:802:26:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029", - "sourceMap": "61:802:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;;;;;;;;;;;;;;;;269:107:27;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;269:107:27:-;350:19;;269:107;:::o;86:21:23:-;;;;;;:::o" + "sourceMap": "61:802:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;269:107:26;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;269:107:26:-;350:19;;269:107;:::o;86:21:22:-;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -11017,12 +10632,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029", - "sourceMap": "160:1236:28:-;;;;;;;;;;;;;;;;;" + "sourceMap": "160:1236:27:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029", - "sourceMap": "160:1236:28:-;;;;;;;;;-1:-1:-1;;;160:1236:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:326:28;;-1:-1:-1;1068:326:28;;-1:-1:-1;;;;;;1068:326:28;;;;-1:-1:-1;;;;;1068:326:28;;;;;;;;;;;;;;;918:144;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;551:184:28;;;;;;;;;;;;741:171;;;;;;;;;;-1:-1:-1;;;;;741:171:28;;;;;269:107:27;;;;;;;;;;;;158:103:31;;;;;;;;;;;;506:494:24;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:24;;-1:-1:-1;506:494:24;;-1:-1:-1;;;;;;506:494:24;;;;;;;;;;;;;;;;;;365:58:28;;;;;;;;;;;;86:21:23;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;512:32:28;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:28;;;;;;;;;;;;;;;;;;;;;;;1068:326;1131:7;1150:10;1284:27;1163:19;:7;:17;:19::i;:::-;1150:32;;;-1:-1:-1;1197:7:28;;;:33;;-1:-1:-1;1214:9:28;:16;1208:22;;;1197:33;1193:81;;;1261:1;1246:17;;;;1193:81;1314:9;:13;;1324:2;;1314:13;;;;;;;;;;;;;;;1344;;1314;;-1:-1:-1;;;;1344:13:28;;;;:43;;1385:1;1344:43;;;1360:14;;-1:-1:-1;;;;;1360:14:28;1344:43;1337:50;;1068:326;;;;;;:::o;918:144::-;421:1;306:47:24;317:10;421:1:28;350::24;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1050:5:28;1017:9;1027:11;1017:22;;;;;;;;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;1017:38:28;-1:-1:-1;;1017:38:28;;;;;;;;;-1:-1:-1;;918:144:28:o;68:84:31:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;551:184:28:-;140:19:27;;:24;132:33;;;;;;599:13:28;:11;:13::i;:::-;680:9;:48;;;;;;:9;:48;;:::i;:::-;;;;;;;;;;695:32;;;;;;;;717:1;695:32;;;;;;;;680:48;-1:-1:-1;695:32:28;680:48;;;-1:-1:-1;;680:48:28;-1:-1:-1;;;;;680:48:28;;;;;;;;;;;;;;;;-1:-1:-1;;;680:48:28;-1:-1:-1;;680:48:28;;;;;;-1:-1:-1;;551:184:28:o;741:171::-;833:7;421:1;306:47:24;317:10;421:1:28;833:7;336:16:24;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;859:9:28;:46;;;;;;:9;:46;;:::i;:::-;;;;;;;;;;874:30;;;;;;;;-1:-1:-1;;;;;874:30:28;;;;-1:-1:-1;874:30:28;;;;;;-1:-1:-1;874:30:28;859:46;;;-1:-1:-1;;859:46:28;-1:-1:-1;;;;;859:46:28;;;;;;;;;;;;;;;;-1:-1:-1;;;859:46:28;-1:-1:-1;;859:46:28;;;;;;-1:-1:-1;852:53:28;;-1:-1:-1;;;741:171:28:o;269:107:27:-;350:19;;269:107;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:24:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:24;913:20;;:80;;-1:-1:-1;937:6:24;;;-1:-1:-1;;;;;937:6:24;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:24;;;;;;-1:-1:-1;;;;;937:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:24;906:87;506:494;-1:-1:-1;;;;;;506:494:24:o;365:58:28:-;421:1;365:58;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:29;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;512:32:28:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:28;;;-1:-1:-1;;;;512:32:28;;;;;:::o;2452:109:32:-;2509:6;2534:20;2543:7;2552:1;2534:8;:20::i;:::-;2527:27;2452:109;-1:-1:-1;;2452:109:32:o;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1021:200:29:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:29;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:29;;-1:-1:-1;;1021:200:29;;;:::o;3092:355:32:-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;-1:-1:-1;;;3290:66:32;3280:3;;;;3276;;;-1:-1:-1;;;;3252:189:32:o;767:94:27:-;842:12;767:94;:::o;2567:188:32:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:32:o;160:1236:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;160:1236:28;;;-1:-1:-1;160:1236:28;;" + "sourceMap": "160:1236:27:-;;;;;;;;;-1:-1:-1;;;160:1236:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:326:27;;-1:-1:-1;1068:326:27;;-1:-1:-1;;;;;;1068:326:27;;;;-1:-1:-1;;;;;1068:326:27;;;;;;;;;;;;;;;918:144;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;551:184:27;;;;;;;;;;;;741:171;;;;;;;;;;-1:-1:-1;;;;;741:171:27;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;;;;;;;;;;;;;;;;;;365:58:27;;;;;;;;;;;;86:21:22;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;512:32:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:27;;;;;;;;;;;;;;;;;;;;;;;1068:326;1131:7;1150:10;1284:27;1163:19;:7;:17;:19::i;:::-;1150:32;;;-1:-1:-1;1197:7:27;;;:33;;-1:-1:-1;1214:9:27;:16;1208:22;;;1197:33;1193:81;;;1261:1;1246:17;;;;1193:81;1314:9;:13;;1324:2;;1314:13;;;;;;;;;;;;;;;1344;;1314;;-1:-1:-1;;;;1344:13:27;;;;:43;;1385:1;1344:43;;;1360:14;;-1:-1:-1;;;;;1360:14:27;1344:43;1337:50;;1068:326;;;;;;:::o;918:144::-;421:1;306:47:23;317:10;421:1:27;350::23;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1050:5:27;1017:9;1027:11;1017:22;;;;;;;;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;1017:38:27;-1:-1:-1;;1017:38:27;;;;;;;;;-1:-1:-1;;918:144:27:o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;551:184:27:-;140:19:26;;:24;132:33;;;;;;599:13:27;:11;:13::i;:::-;680:9;:48;;;;;;:9;:48;;:::i;:::-;;;;;;;;;;695:32;;;;;;;;717:1;695:32;;;;;;;;680:48;-1:-1:-1;695:32:27;680:48;;;-1:-1:-1;;680:48:27;-1:-1:-1;;;;;680:48:27;;;;;;;;;;;;;;;;-1:-1:-1;;;680:48:27;-1:-1:-1;;680:48:27;;;;;;-1:-1:-1;;551:184:27:o;741:171::-;833:7;421:1;306:47:23;317:10;421:1:27;833:7;336:16:23;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;859:9:27;:46;;;;;;:9;:46;;:::i;:::-;;;;;;;;;;874:30;;;;;;;;-1:-1:-1;;;;;874:30:27;;;;-1:-1:-1;874:30:27;;;;;;-1:-1:-1;874:30:27;859:46;;;-1:-1:-1;;859:46:27;-1:-1:-1;;;;;859:46:27;;;;;;;;;;;;;;;;-1:-1:-1;;;859:46:27;-1:-1:-1;;859:46:27;;;;;;-1:-1:-1;852:53:27;;-1:-1:-1;;;741:171:27:o;269:107:26:-;350:19;;269:107;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;365:58:27:-;421:1;365:58;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;512:32:27:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:27;;;-1:-1:-1;;;;512:32:27;;;;;:::o;2452:109:31:-;2509:6;2534:20;2543:7;2552:1;2534:8;:20::i;:::-;2527:27;2452:109;-1:-1:-1;;2452:109:31:o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;3092:355:31:-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;-1:-1:-1;;;3290:66:31;3280:3;;;;3276;;;-1:-1:-1;;;;3252:189:31:o;767:94:26:-;842:12;767:94;:::o;2567:188:31:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:31:o;160:1236:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;160:1236:27;;;-1:-1:-1;160:1236:27;;" }, "gasEstimates": { "creation": { @@ -11153,12 +10768,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029", - "sourceMap": "162:1806:29:-;;;;;;;;;;;;;;;;;" + "sourceMap": "162:1806:28:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029", - "sourceMap": "162:1806:29:-;;;;;;;;;-1:-1:-1;;;162:1806:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:23;;;;;;;;;;;;158:103:31;;;;;;;;;;;;86:21:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:29;;-1:-1:-1;824:169:29;;-1:-1:-1;;;;;;824:169:29;68:84:31;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:23:-;;;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;86:21:23:-;;;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;:39;;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;-1:-1:-1;;;824:169:29:o;1021:200::-;1075:18;1128:6;;1075:18;;1128:6;;:13;217:16:31;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;-1:-1:-1;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + "sourceMap": "162:1806:28:-;;;;;;;;;-1:-1:-1;;;162:1806:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;158:103:30;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;86:21:22:-;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;:39;;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;1021:200::-;1075:18;1128:6;;1075:18;;1128:6;;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "gasEstimates": { "creation": { @@ -11286,12 +10901,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029", - "sourceMap": "26:238:31:-;;;;;;;;;;;;;;;;;" + "sourceMap": "26:238:30:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029", - "sourceMap": "26:238:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103;;;;;;;;;;;;68:84;120:32;;;;;;;;;;;;;;68:84;:::o;158:103::-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o" + "sourceMap": "26:238:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103;;;;;;;;;;;;68:84;120:32;;;;;;;;;;;;;;68:84;:::o;158:103::-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o" }, "gasEstimates": { "creation": { @@ -11454,12 +11069,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029", - "sourceMap": "26:4554:32:-;;;;;;;;;;;;;;;;;" + "sourceMap": "26:4554:31:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029", - "sourceMap": "26:4554:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638;;;;;;;;;;;;597:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;597:125:32;;-1:-1:-1;597:125:32;;-1:-1:-1;;;;;;597:125:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638:32;4026:4;4055:5;4084:4;4012:11;4149:165;4163:2;4156:9;;4149:165;;4238:3;4232:5;4219:6;;4278:2;4294:9;;;;4270:10;;;;-1:-1:-1;;4167:9:32;;;;4149:165;;;4388:1;4381:3;4376:2;:8;4368:3;:17;:21;4356:33;;4457:4;4453:3;4447;4441:5;4437:3;4509:4;4502;4496:5;4492:3;4540:2;4527:6;;;-1:-1:-1;;;;;;4408:164:32:o;597:125::-;671:7;;:::i;:::-;697:18;704:2;708;712;697:6;:18::i;:::-;690:25;597:125;-1:-1:-1;;;;597:125:32:o;728:830::-;822:14;;:::i;:::-;922:4;902:17;;;973:13;983:2;973:9;:13::i;:::-;968:2;:18;956:9;:30;936:50;;1033:13;1043:2;1033:9;:13::i;:::-;1028:2;:18;1016:9;:30;996:50;;1090:13;1100:2;1090:9;:13::i;:::-;1085:2;:18;1073:9;:30;1056:47;;1128:6;1118:17;;;;;;;;;;;;;-1:-1:-1;;1118:17:32;;;;;;;;;;;;1114:21;;1220:9;1213:4;1210:1;1206:3;1199:6;1264:9;1257:4;1254:1;1250:3;1243:6;1308:9;1301:4;1298:1;1294:3;1287:6;1381:41;1386:1;1389:10;1396:2;1389:6;:10::i;:::-;1401:9;1412:2;:9;1381:4;:41::i;:::-;1432;1437:1;1440:10;1447:2;1440:6;:10::i;:::-;1452:9;1463:2;:9;1432:4;:41::i;:::-;1483:46;1488:1;1491:10;1498:2;1491:6;:10::i;:::-;1503:9;1514:2;:9;1526:2;1514:14;1483:4;:46::i;:::-;728:830;;;;;;;;;:::o;1564:236::-;1623:7;1783:1;1778:2;1766;:9;:14;;;;;;;;:18;:26;;1791:1;1766:26;;;1787:1;1766:26;1742:51;;1759:2;1747;:9;:14;;;;;;;;1742:51;:1;:51;;1564:236;-1:-1:-1;;1564:236:32:o;1806:139::-;1862:7;1929:2;:9;1925:1;:13;;1806:139;-1:-1:-1;;1806:139:32:o;2182:127::-;2291:2;2270:33::o;1951:225::-;2044:9;2113:4;2106;2102:2;2098:3;2094;2086:32;;2137;2144:4;2150;2156:7;2166:2;2156:12;2137:6;:32::i;:::-;1951:225;;;;;:::o;26:4554::-;;;;;;;;;;;;;:::o" + "sourceMap": "26:4554:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638;;;;;;;;;;;;597:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;597:125:31;;-1:-1:-1;597:125:31;;-1:-1:-1;;;;;;597:125:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638:31;4026:4;4055:5;4084:4;4012:11;4149:165;4163:2;4156:9;;4149:165;;4238:3;4232:5;4219:6;;4278:2;4294:9;;;;4270:10;;;;-1:-1:-1;;4167:9:31;;;;4149:165;;;4388:1;4381:3;4376:2;:8;4368:3;:17;:21;4356:33;;4457:4;4453:3;4447;4441:5;4437:3;4509:4;4502;4496:5;4492:3;4540:2;4527:6;;;-1:-1:-1;;;;;;4408:164:31:o;597:125::-;671:7;;:::i;:::-;697:18;704:2;708;712;697:6;:18::i;:::-;690:25;597:125;-1:-1:-1;;;;597:125:31:o;728:830::-;822:14;;:::i;:::-;922:4;902:17;;;973:13;983:2;973:9;:13::i;:::-;968:2;:18;956:9;:30;936:50;;1033:13;1043:2;1033:9;:13::i;:::-;1028:2;:18;1016:9;:30;996:50;;1090:13;1100:2;1090:9;:13::i;:::-;1085:2;:18;1073:9;:30;1056:47;;1128:6;1118:17;;;;;;;;;;;;;-1:-1:-1;;1118:17:31;;;;;;;;;;;;1114:21;;1220:9;1213:4;1210:1;1206:3;1199:6;1264:9;1257:4;1254:1;1250:3;1243:6;1308:9;1301:4;1298:1;1294:3;1287:6;1381:41;1386:1;1389:10;1396:2;1389:6;:10::i;:::-;1401:9;1412:2;:9;1381:4;:41::i;:::-;1432;1437:1;1440:10;1447:2;1440:6;:10::i;:::-;1452:9;1463:2;:9;1432:4;:41::i;:::-;1483:46;1488:1;1491:10;1498:2;1491:6;:10::i;:::-;1503:9;1514:2;:9;1526:2;1514:14;1483:4;:46::i;:::-;728:830;;;;;;;;;:::o;1564:236::-;1623:7;1783:1;1778:2;1766;:9;:14;;;;;;;;:18;:26;;1791:1;1766:26;;;1787:1;1766:26;1742:51;;1759:2;1747;:9;:14;;;;;;;;1742:51;:1;:51;;1564:236;-1:-1:-1;;1564:236:31:o;1806:139::-;1862:7;1929:2;:9;1925:1;:13;;1806:139;-1:-1:-1;;1806:139:31:o;2182:127::-;2291:2;2270:33::o;1951:225::-;2044:9;2113:4;2106;2102:2;2098:3;2094;2086:32;;2137;2144:4;2150;2156:7;2166:2;2156:12;2137:6;:32::i;:::-;1951:225;;;;;:::o;26:4554::-;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -11565,12 +11180,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029", - "sourceMap": "152:1785:33:-;;;;;;;;;;;;;;;;;" + "sourceMap": "152:1785:32:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029", - "sourceMap": "152:1785:33:-;;;;;;;;;;;;;;;;;;;;;;;808:1127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:1127:33;897:5;;:::i;:::-;287:1;914:16;;;;993:936;1000:25;;;993:936;;;1067:27;1085:8;1067:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1067:17:33;;:27;-1:-1:-1;;1067:27:33;:17;:27;;-1:-1:-1;;;1067:27:33:i;:::-;1041:53;;1181:1;1172:10;;1167:119;1184:21;;;1167:119;;;1257:10;;1268:1;1257:13;;;;;;;;;;;;;;-1:-1:-1;1257:13:33;;;1238:32;;;;;;-1:-1:-1;1230:41:33;;;;;;1207:3;;;;;1167:119;;;-1:-1:-1;1440:57:33;;;;1474:4;1440:57;;;1454:10;1440:57;;;;;;;;;;;1545:33;1562:8;1573:4;1562:15;1545:7;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:16:33;;:33;-1:-1:-1;;1545:33:33;:16;:33;;-1:-1:-1;;;1545:33:33:i;:::-;1537:42;;;-1:-1:-1;1617:42:33;1636:22;;;1617:7;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1617:18:33;;:42;-1:-1:-1;;1617:42:33;:18;:42;;-1:-1:-1;;;1617:42:33:i;:::-;1593:66;;1791:1;1788;1772:14;1757:13;1754:1;1737:15;1730:4;1725:3;1721;1716:4;1817:7;1825:23;;;;-1:-1:-1;;1876:42:33;;;1889:11;1876:42;;993:936;;;808:1127;;;;;;;;;;;;;:::o;2761:325:32:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:32;;;2947;;2923:157;-1:-1:-1;;;;2923:157:32:o;3092:355::-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;3371:59;3290:66;3280:3;;;3276;;3252:189;-1:-1:-1;;;;3252:189:32:o;3453:182::-;3587:3;3602:4;3587:3;;3563:66::o;2567:188::-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:32:o;152:1785:33:-;;;;;;;;;;;;;:::o" + "sourceMap": "152:1785:32:-;;;;;;;;;;;;;;;;;;;;;;;808:1127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:1127:32;897:5;;:::i;:::-;287:1;914:16;;;;993:936;1000:25;;;993:936;;;1067:27;1085:8;1067:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1067:17:32;;:27;-1:-1:-1;;1067:27:32;:17;:27;;-1:-1:-1;;;1067:27:32:i;:::-;1041:53;;1181:1;1172:10;;1167:119;1184:21;;;1167:119;;;1257:10;;1268:1;1257:13;;;;;;;;;;;;;;-1:-1:-1;1257:13:32;;;1238:32;;;;;;-1:-1:-1;1230:41:32;;;;;;1207:3;;;;;1167:119;;;-1:-1:-1;1440:57:32;;;;1474:4;1440:57;;;1454:10;1440:57;;;;;;;;;;;1545:33;1562:8;1573:4;1562:15;1545:7;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:16:32;;:33;-1:-1:-1;;1545:33:32;:16;:33;;-1:-1:-1;;;1545:33:32:i;:::-;1537:42;;;-1:-1:-1;1617:42:32;1636:22;;;1617:7;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1617:18:32;;:42;-1:-1:-1;;1617:42:32;:18;:42;;-1:-1:-1;;;1617:42:32:i;:::-;1593:66;;1791:1;1788;1772:14;1757:13;1754:1;1737:15;1730:4;1725:3;1721;1716:4;1817:7;1825:23;;;;-1:-1:-1;;1876:42:32;;;1889:11;1876:42;;993:936;;;808:1127;;;;;;;;;;;;;:::o;2761:325:31:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:31;;;2947;;2923:157;-1:-1:-1;;;;2923:157:31:o;3092:355::-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;3371:59;3290:66;3280:3;;;3276;;3252:189;-1:-1:-1;;;;3252:189:31:o;3453:182::-;3587:3;3602:4;3587:3;;3563:66::o;2567:188::-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:31:o;152:1785:32:-;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -11642,12 +11257,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029", - "sourceMap": "159:1973:34:-;;;;;;;;;;;;;;;;;" + "sourceMap": "159:1973:33:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029", - "sourceMap": "159:1973:34:-;;;;;;;;;;;;;;;;;;;;;;;648:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;648:387:34;737:5;;:::i;:::-;762:22;;754:31;;;;;;926:26;908:44;;900:53;;;;;;970:58;979:40;293:1;979:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;979:17:34;;:40;-1:-1:-1;;979:40:34;:17;:40;;-1:-1:-1;;;979:40:34:i;:::-;1021:6;;970:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;970:8:34;;-1:-1:-1;;;;;970:58:34:i;:::-;963:65;648:387;-1:-1:-1;;;;;;;648:387:34:o;2761:325:32:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:32;;;2947;;2923:157;-1:-1:-1;;;;2923:157:32:o;1108:249:34:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:34;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:34:o;2567:188:32:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:32:o;1363:170:34:-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:34;:::o;3641:293:32:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:32;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:32;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:32;-1:-1:-1;;3811:9:32;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:32;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:32;-1:-1:-1;;3851:10:32;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:32;-1:-1:-1;;3892:10:32;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:32;3641:293;-1:-1:-1;;3641:293:32:o;159:1973:34:-;;;;;;;;;;;;;:::o" + "sourceMap": "159:1973:33:-;;;;;;;;;;;;;;;;;;;;;;;648:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;648:387:33;737:5;;:::i;:::-;762:22;;754:31;;;;;;926:26;908:44;;900:53;;;;;;970:58;979:40;293:1;979:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;979:17:33;;:40;-1:-1:-1;;979:40:33;:17;:40;;-1:-1:-1;;;979:40:33:i;:::-;1021:6;;970:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;970:8:33;;-1:-1:-1;;;;;970:58:33:i;:::-;963:65;648:387;-1:-1:-1;;;;;;;648:387:33:o;2761:325:31:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:31;;;2947;;2923:157;-1:-1:-1;;;;2923:157:31:o;1108:249:33:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:33;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:33:o;2567:188:31:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:31:o;1363:170:33:-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:33;:::o;3641:293:31:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:31;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:31;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:31;-1:-1:-1;;3811:9:31;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:31;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:31;-1:-1:-1;;3851:10:31;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:31;-1:-1:-1;;3892:10:31;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:31;3641:293;-1:-1:-1;;3641:293:31:o;159:1973:33:-;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -11760,12 +11375,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", - "sourceMap": "137:1475:35:-;;;;;;;;;;;;;;;;;" + "sourceMap": "137:1475:34:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", - "sourceMap": "137:1475:35:-;;;;;;;;;;;;;;;;;;;;;;;664:452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;664:452:35;753:5;;:::i;:::-;859:10;;778:22;;770:31;;;;;;882:7;;872:18;;;;;;;;;;;;;;;;;;;;;;;;;;919:5;:9;;;;;;;;;;;872:18;;-1:-1:-1;919:9:35;;;-1:-1:-1;942:22:35;;938:113;;;991:15;998:7;;991:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;991:6:35;;-1:-1:-1;;;;;991:15:35:i;:::-;1020:5;:9;;;;;;;;;;:20;;-1:-1:-1;;1020:20:35;;;;;;;;-1:-1:-1;938:113:35;1068:41;1092:8;1102:6;;1068:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:23:35;;-1:-1:-1;;;;;1068:41:35:i;:::-;1061:48;664:452;-1:-1:-1;;;;;;;;;664:452:35:o;1186:424::-;1235:12;1469:4;1459:7;1453:5;1449:3;1442:4;1433:7;1429:3;1426:1;1419:6;1411:64;;1514:4;1502:11;1495:6;1538:1;1533:23;;;;1488:68;1268:336;;;:::o;1108:249:34:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:34;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:34:o;1363:170::-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:34;:::o;3641:293:32:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:32;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:32;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:32;-1:-1:-1;;3811:9:32;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:32;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:32;-1:-1:-1;;3851:10:32;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:32;-1:-1:-1;;3892:10:32;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:32;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:32;3641:293;-1:-1:-1;;3641:293:32:o;137:1475:35:-;;;;;;;;;;;;;:::o" + "sourceMap": "137:1475:34:-;;;;;;;;;;;;;;;;;;;;;;;664:452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;664:452:34;753:5;;:::i;:::-;859:10;;778:22;;770:31;;;;;;882:7;;872:18;;;;;;;;;;;;;;;;;;;;;;;;;;919:5;:9;;;;;;;;;;;872:18;;-1:-1:-1;919:9:34;;;-1:-1:-1;942:22:34;;938:113;;;991:15;998:7;;991:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;991:6:34;;-1:-1:-1;;;;;991:15:34:i;:::-;1020:5;:9;;;;;;;;;;:20;;-1:-1:-1;;1020:20:34;;;;;;;;-1:-1:-1;938:113:34;1068:41;1092:8;1102:6;;1068:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:23:34;;-1:-1:-1;;;;;1068:41:34:i;:::-;1061:48;664:452;-1:-1:-1;;;;;;;;;664:452:34:o;1186:424::-;1235:12;1469:4;1459:7;1453:5;1449:3;1442:4;1433:7;1429:3;1426:1;1419:6;1411:64;;1514:4;1502:11;1495:6;1538:1;1533:23;;;;1488:68;1268:336;;;:::o;1108:249:33:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:33;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:33:o;1363:170::-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:33;:::o;3641:293:31:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:31;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:31;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:31;-1:-1:-1;;3811:9:31;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:31;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:31;-1:-1:-1;;3851:10:31;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:31;-1:-1:-1;;3892:10:31;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:31;3641:293;-1:-1:-1;;3641:293:31:o;137:1475:34:-;;;;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -11916,12 +11531,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b61134b8061001e6000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029", - "sourceMap": "106:964:36:-;;;;;;;;;;;;;;;;;" + "sourceMap": "106:964:35:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029", - "sourceMap": "106:964:36:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:272;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:36;;-1:-1:-1;796:272:36;;-1:-1:-1;;;;;;796:272:36;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:36;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:36;;-1:-1:-1;339:281:36;;-1:-1:-1;;;;;;339:281:36;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:36;;;;;;;796:272;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:36;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:36;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:36:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:36;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:36:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:36;;;;;;;;;;;;735:17;:48::i;106:964::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" + "sourceMap": "106:964:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:272;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:35;;-1:-1:-1;796:272:35;;-1:-1:-1;;;;;;796:272:35;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:35;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:35;;-1:-1:-1;339:281:35;;-1:-1:-1;;;;;;339:281:35;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:35;;;;;;;796:272;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:35;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:35;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:35:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:35;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:35:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:35;;;;;;;;;;;;735:17;:48::i;106:964::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -12061,12 +11676,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b60405160208061439683398101604052808051915061002e90506100c7565b604051809103906000f080151561004457600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561006c6100d7565b604051809103906000f080151561008257600080fd5b60018054600160a060020a031916600160a060020a039283161790558116156100c15760028054600160a060020a031916600160a060020a0383161790555b506100e7565b604051611fdc80610dd583390190565b6040516115e580612db183390190565b610cdf806100f66000396000f3006060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca1200296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "162:1647:37:-;;;379:316;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;521:12:37;;-1:-1:-1;521:12:37;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:37;-1:-1:-1;;;;;500:34:37;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:37;-1:-1:-1;;;;;544:28:37;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:37;-1:-1:-1;;;;;628:50:37;;;;;583:106;379:316;162:1647;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" + "sourceMap": "162:1647:36:-;;;379:316;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;521:12:36;;-1:-1:-1;521:12:36;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:36;-1:-1:-1;;;;;500:34:36;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:36;-1:-1:-1;;;;;544:28:36;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:36;-1:-1:-1;;;;;628:50:36;;;;;583:106;379:316;162:1647;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca120029", - "sourceMap": "162:1647:37:-;;;;;;;;;-1:-1:-1;;;162:1647:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:37;;;;;;;;;;;;;;797:1010;;;;;;;;;;-1:-1:-1;;;;;797:1010:37;;;;;247:42;;;;;;;;;;;;188:25;;;;;;;;;;;;219:22;;;-1:-1:-1;;;;;219:22:37;;:::o;797:1010::-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:37;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:37;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:37;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:37;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:37;;;;;;-1:-1:-1;;;;;998:36:37;;;;;;;;;;;;;;;-1:-1:-1;998:36:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:37;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:37;1084:33;;-1:-1:-1;1080:696:37;;1152:3;-1:-1:-1;;;;;1152:27:37;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:37;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:37;;;;-1:-1:-1;1257:19:37;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:37;;;;;;-1:-1:-1;;;;;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:37;;-1:-1:-1;;;;;1318:20:37;;;;-1:-1:-1;1318:20:37;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:37;;;;;;-1:-1:-1;;;;;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:37;;-1:-1:-1;;;;;1416:10:37;;-1:-1:-1;1416:31:37;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:37;;;;;;-1:-1:-1;;;;;1416:43:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:37;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:37;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:37;;;;;;-1:-1:-1;;;;;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:37;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:37;;;;;;-1:-1:-1;;;;;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:37;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:37;;;;;;-1:-1:-1;;;;;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:37;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:37;;;;;;-1:-1:-1;;;;;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:37;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;247:42::-;;;-1:-1:-1;;;;;247:42:37;;:::o;188:25::-;;;-1:-1:-1;;;;;188:25:37;;:::o;162:1647::-;;;;;;;;;;:::o" + "sourceMap": "162:1647:36:-;;;;;;;;;-1:-1:-1;;;162:1647:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:36;;;;;;;;;;;;;;797:1010;;;;;;;;;;-1:-1:-1;;;;;797:1010:36;;;;;247:42;;;;;;;;;;;;188:25;;;;;;;;;;;;219:22;;;-1:-1:-1;;;;;219:22:36;;:::o;797:1010::-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:36;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:36;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:36;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:36;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:36;;;;;;-1:-1:-1;;;;;998:36:36;;;;;;;;;;;;;;;-1:-1:-1;998:36:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:36;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:36;1084:33;;-1:-1:-1;1080:696:36;;1152:3;-1:-1:-1;;;;;1152:27:36;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:36;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:36;;;;-1:-1:-1;1257:19:36;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:36;;;;;;-1:-1:-1;;;;;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:36;;-1:-1:-1;;;;;1318:20:36;;;;-1:-1:-1;1318:20:36;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:36;;;;;;-1:-1:-1;;;;;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:36;;-1:-1:-1;;;;;1416:10:36;;-1:-1:-1;1416:31:36;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:36;;;;;;-1:-1:-1;;;;;1416:43:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:36;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:36;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:36;;;;;;-1:-1:-1;;;;;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:36;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:36;;;;;;-1:-1:-1;;;;;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:36;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:36;;;;;;-1:-1:-1;;;;;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:36;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:36;;;;;;-1:-1:-1;;;;;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:36;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;247:42::-;;;-1:-1:-1;;;;;247:42:36;;:::o;188:25::-;;;-1:-1:-1;;;;;188:25:36;;:::o;162:1647::-;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -12329,12 +11944,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b61001761010c565b604051809103906000f080151561002d57600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561005561011d565b604051809103906000f080151561006b57600080fd5b60018054600160a060020a031916600160a060020a039290921691909117905561009361012e565b604051809103906000f08015156100a957600080fd5b60028054600160a060020a031916600160a060020a03929092169190911790556100d161013f565b604051809103906000f08015156100e757600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055610150565b604051610aac8062001cb983390190565b6040516103b1806200276583390190565b6040516104b08062002b1683390190565b60405161050d8062002fc683390190565b611b5980620001606000396000f3006060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e972200296060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a9949417665585108200296060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb900296060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd442541100296060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", - "sourceMap": "321:1285:38:-;;;529:260;;;;;;;;600:23;;:::i;:::-;;;;;;;;;;;;;;;;;;582:7;:42;;-1:-1:-1;;;;;;582:42:38;-1:-1:-1;;;;;582:42:38;;;;;;;;;;654:17;;:::i;:::-;;;;;;;;;;;;;;;;;;634:9;:38;;-1:-1:-1;;;;;;634:38:38;-1:-1:-1;;;;;634:38:38;;;;;;;;;;700:20;;:::i;:::-;;;;;;;;;;;;;;;;;;682:7;:39;;-1:-1:-1;;;;;;682:39:38;-1:-1:-1;;;;;682:39:38;;;;;;;;;;755:26;;:::i;:::-;;;;;;;;;;;;;;;;;;731:13;:51;;-1:-1:-1;;;;;;731:51:38;-1:-1:-1;;;;;731:51:38;;;;;;;;;;321:1285;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" + "sourceMap": "321:1285:37:-;;;529:260;;;;;;;;600:23;;:::i;:::-;;;;;;;;;;;;;;;;;;582:7;:42;;-1:-1:-1;;;;;;582:42:37;-1:-1:-1;;;;;582:42:37;;;;;;;;;;654:17;;:::i;:::-;;;;;;;;;;;;;;;;;;634:9;:38;;-1:-1:-1;;;;;;634:38:37;-1:-1:-1;;;;;634:38:37;;;;;;;;;;700:20;;:::i;:::-;;;;;;;;;;;;;;;;;;682:7;:39;;-1:-1:-1;;;;;;682:39:37;-1:-1:-1;;;;;682:39:37;;;;;;;;;;755:26;;:::i;:::-;;;;;;;;;;;;;;;;;;731:13;:51;;-1:-1:-1;;;;;;731:51:37;-1:-1:-1;;;;;731:51:37;;;;;;;;;;321:1285;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e97220029", - "sourceMap": "321:1285:38:-;;;;;;;;;-1:-1:-1;;;321:1285:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;408:22:38;;;;;;;;;;;;;;494:28;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;795:809:38;;;;;;;;;;-1:-1:-1;;;;;795:809:38;;;;;;;;;;158:103:31;;;;;;;;;;;;436:24:38;;;;;;;;;;;;796:272:36;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:36;;-1:-1:-1;796:272:36;;-1:-1:-1;;;;;;796:272:36;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:36;;;;;;;466:22:38;;;;;;;;;;;;339:281:36;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:36;;-1:-1:-1;339:281:36;;-1:-1:-1;;;;;;339:281:36;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:36;;;;;;;408:22:38;;;-1:-1:-1;;;;;408:22:38;;:::o;494:28::-;;;-1:-1:-1;;;;;494:28:38;;:::o;68:84:31:-;120:32;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;68:84;:::o;795:809:38:-;869:21;1025:7;926:4;-1:-1:-1;;;;;926:25:38;;120:32:31;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;;979:7:38;;;-1:-1:-1;;;;;979:7:38;;926:61;;;;;;;-1:-1:-1;;;926:61:38;;;;;;;;;;;;;-1:-1:-1;;;;;926:61:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;998:14:38;;;:16;;;;;-1:-1:-1;;;998:16:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:4;-1:-1:-1;;;;;1039:8:38;;:10;;;;;;;;;;;-1:-1:-1;;;1039:10:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1061:11:38;;;;1073:23;:25;;;;;;;;;;;-1:-1:-1;;;1073:25:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:32:31;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;1127:3:38;1061:70;;;;;;;;-1:-1:-1;;;1061:70:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:70:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:3;-1:-1:-1;;;;;1141:20:38;;1162:4;1168:3;1173;-1:-1:-1;;;;;1173:25:38;;:27;;;;;;;;;;;-1:-1:-1;;;1173:27:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1202:4;1141:66;;-1:-1:-1;;;1141:66:38;;;;;;-1:-1:-1;;;;;1141:66:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1141:66:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1240:9:38;;-1:-1:-1;;;;;1218:21:38;;;;-1:-1:-1;1218:21:38;;1240:9;;1218:32;;;;;;;-1:-1:-1;;;1218:32:38;;;;;;-1:-1:-1;;;;;1218:32:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1310:7:38;;-1:-1:-1;;;;;1288:21:38;;;;;;1310:7;;1288:30;;;;;;;-1:-1:-1;;;1288:30:38;;;;;;-1:-1:-1;;;;;1288:30:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1383:13:38;;-1:-1:-1;;;;;1361:21:38;;;;;;1383:13;;1361:36;;;;;;;-1:-1:-1;;;1361:36:38;;;;;;-1:-1:-1;;;;;1361:36:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:3;-1:-1:-1;;;;;1441:20:38;;1462:4;1468:3;1473;-1:-1:-1;;;;;1473:25:38;;:27;;;;;;;;;;;-1:-1:-1;;;1473:27:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:60;;-1:-1:-1;;;1441:60:38;;;;;;-1:-1:-1;;;;;1441:60:38;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1441:60:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:3;-1:-1:-1;;;;;1511:24:38;;1536:5;1543:3;1548;-1:-1:-1;;;;;1548:25:38;;:27;;;;;;;;;;;-1:-1:-1;;;1548:27:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:65;;-1:-1:-1;;;1511:65:38;;;;;;-1:-1:-1;;;;;1511:65:38;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1511:65:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;795:809:38;;;;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;120:32;;-1:-1:-1;;;;;;;;;;;120:32:31;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;436:24:38:-;;;-1:-1:-1;;;;;436:24:38;;:::o;796:272:36:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:36;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:36;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:36:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:36;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:36:o;466:22:38:-;;;-1:-1:-1;;;;;466:22:38;;:::o;339:281:36:-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:36;;;;;;;;;;;;735:17;:48::i;321:1285:38:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" + "sourceMap": "321:1285:37:-;;;;;;;;;-1:-1:-1;;;321:1285:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;408:22:37;;;;;;;;;;;;;;494:28;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;795:809:37;;;;;;;;;;-1:-1:-1;;;;;795:809:37;;;;;;;;;;158:103:30;;;;;;;;;;;;436:24:37;;;;;;;;;;;;796:272:35;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:35;;-1:-1:-1;796:272:35;;-1:-1:-1;;;;;;796:272:35;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:35;;;;;;;466:22:37;;;;;;;;;;;;339:281:35;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:35;;-1:-1:-1;339:281:35;;-1:-1:-1;;;;;;339:281:35;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:35;;;;;;;408:22:37;;;-1:-1:-1;;;;;408:22:37;;:::o;494:28::-;;;-1:-1:-1;;;;;494:28:37;;:::o;68:84:30:-;120:32;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;68:84;:::o;795:809:37:-;869:21;1025:7;926:4;-1:-1:-1;;;;;926:25:37;;120:32:30;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;;979:7:37;;;-1:-1:-1;;;;;979:7:37;;926:61;;;;;;;-1:-1:-1;;;926:61:37;;;;;;;;;;;;;-1:-1:-1;;;;;926:61:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;998:14:37;;;:16;;;;;-1:-1:-1;;;998:16:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:4;-1:-1:-1;;;;;1039:8:37;;:10;;;;;;;;;;;-1:-1:-1;;;1039:10:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1061:11:37;;;;1073:23;:25;;;;;;;;;;;-1:-1:-1;;;1073:25:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:32:30;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;1127:3:37;1061:70;;;;;;;;-1:-1:-1;;;1061:70:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:3;-1:-1:-1;;;;;1141:20:37;;1162:4;1168:3;1173;-1:-1:-1;;;;;1173:25:37;;:27;;;;;;;;;;;-1:-1:-1;;;1173:27:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1202:4;1141:66;;-1:-1:-1;;;1141:66:37;;;;;;-1:-1:-1;;;;;1141:66:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1141:66:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1240:9:37;;-1:-1:-1;;;;;1218:21:37;;;;-1:-1:-1;1218:21:37;;1240:9;;1218:32;;;;;;;-1:-1:-1;;;1218:32:37;;;;;;-1:-1:-1;;;;;1218:32:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1310:7:37;;-1:-1:-1;;;;;1288:21:37;;;;;;1310:7;;1288:30;;;;;;;-1:-1:-1;;;1288:30:37;;;;;;-1:-1:-1;;;;;1288:30:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1383:13:37;;-1:-1:-1;;;;;1361:21:37;;;;;;1383:13;;1361:36;;;;;;;-1:-1:-1;;;1361:36:37;;;;;;-1:-1:-1;;;;;1361:36:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:3;-1:-1:-1;;;;;1441:20:37;;1462:4;1468:3;1473;-1:-1:-1;;;;;1473:25:37;;:27;;;;;;;;;;;-1:-1:-1;;;1473:27:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:60;;-1:-1:-1;;;1441:60:37;;;;;;-1:-1:-1;;;;;1441:60:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1441:60:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:3;-1:-1:-1;;;;;1511:24:37;;1536:5;1543:3;1548;-1:-1:-1;;;;;1548:25:37;;:27;;;;;;;;;;;-1:-1:-1;;;1548:27:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:65;;-1:-1:-1;;;1511:65:37;;;;;;-1:-1:-1;;;;;1511:65:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1511:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;795:809:37;;;;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;436:24:37:-;;;-1:-1:-1;;;;;436:24:37;;:::o;796:272:35:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:35;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:35;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:35:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:35;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:35:o;466:22:37:-;;;-1:-1:-1;;;;;466:22:37;;:::o;339:281:35:-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:35;;;;;;;;;;;;735:17;:48::i;321:1285:37:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -13059,12 +12674,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029", - "sourceMap": "228:4676:40:-;;;;;;;;;;;;;;;;;" + "sourceMap": "228:4676:39:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029", - "sourceMap": "228:4676:40:-;;;;;;;;;-1:-1:-1;;;228:4676:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:42;;;;;;;;;;;;;;;2831:92:40;;;;;;;;;;;;;;781:331;;;;;;;;;;-1:-1:-1;;;;;781:331:40;;;;;;;;;;;;57:58:42;;;;;;;;;;;;113:20:23;;;;;;;;;;;;1397:261:40;;;;;;;;;;;;-1:-1:-1;;;;;1397:261:40;;;;;269:107:27;;;;;;;;;;;;324:53:40;;;;;;;;;;;;1950:273;;;;;;;;;;;;-1:-1:-1;;;;;1950:273:40;;;;;492:75:42;;;;;;;;;;;;2464:212:40;;;;;;;;;;;;;;-1:-1:-1;;;;;2464:212:40;;;;;420:66:42;;;;;;;;;;;;796:272:36;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:36;;-1:-1:-1;796:272:36;;-1:-1:-1;;;;;;796:272:36;86:21:23;;;;;;;;;;;;121:63:42;;;;;;;;;;;;3003:87:40;;;;;;;;;;;;176:157:36;;;;;;;;;;-1:-1:-1;;;;;176:157:36;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:36;;-1:-1:-1;339:281:36;;-1:-1:-1;;;;;;339:281:36;3458:177:40;;;;;;;;;;-1:-1:-1;;;;;3458:177:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3458:177:40;;-1:-1:-1;3458:177:40;;-1:-1:-1;;;;;;3458:177:40;;;;;;;;;;;;;;;;;;626:164:36;;;;;;;;;;-1:-1:-1;;;;;626:164:36;;;;;;;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:42;;:::o;2831:92:40:-;2881:7;2907:9;;;;;;;;;;;-1:-1:-1;;;;;2907:9:40;;2831:92::o;781:331::-;140:19:27;;898:8:40;;140:24:27;132:33;;;;;;874:13:40;:11;:13::i;:::-;914:29;926:4;457:29:42;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;914:11:40;:29::i;:::-;898:46;;955:50;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;996:8:40;955:7;:50::i;:::-;;1015:44;235:16:42;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;1055:3:40;1015:7;:44::i;:::-;-1:-1:-1;;;;;;1070:14:40;;;1085:19;1070:35;;-1:-1:-1;;;1070:35:40;;;;;;-1:-1:-1;;;;;1070:35:40;;;;;;;;;;-1:-1:-1;1070:35:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:331;;;:::o;57:58:42:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:23:-;;;;:::o;1397:261:40:-;1526:18;375:1;1477:31;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;1502:5:40;1477:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;1556:50;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;1590:5:40;1597:8;1556:12;:50::i;:::-;;1627:24;1639:4;1645:5;1627:11;:24::i;:::-;1616:35;1397:261;-1:-1:-1;;;;;;;1397:261:40:o;269:107:27:-;350:19;;269:107;:::o;324:53:40:-;375:1;324:53;:::o;1950:273::-;2085:18;375:1;2036:31;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;2061:5:40;2036:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;2115:50;167:17:42;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;2149:5:40;2156:8;2115:12;:50::i;:::-;;2186:30;2204:4;2210:5;2186:17;:30::i;492:75:42:-;235:16;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;2464:212:40:-;2608:10;375:1;2552:22;2556:10;2568:5;2552:3;:22::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;4762:14;4807:12;2637:32;2645:10;2657:5;2664:4;2637:7;:32::i;:::-;2630:39;;4779:18;98:17:42;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;4779:6:40;:18::i;:::-;4762:35;-1:-1:-1;;4848:11:40;;4893:1;4886:8;;4878:17;;;;;;4667:1;;2464:212;;;;;;;;;:::o;420:66:42:-;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;420:66;:::o;796:272:36:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:36;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:36;;;;;;;;;;;;;;;1056:5;1049:12;;796:272;;;;;;;:::o;86:21:23:-;;;-1:-1:-1;;;;;86:21:23;;:::o;121:63:42:-;167:17;;-1:-1:-1;;;;;167:17:42;;;;;;;;;;;121:63;:::o;3003:87:40:-;3039:4;3067:15;235:16:42;;-1:-1:-1;;;;;235:16:42;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:42;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;3067:6:40;:15::i;:::-;3055:28;;3003:87;:::o;176:157:36:-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:36;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:36:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;3458:177:40:-;3559:4;3582:5;:3;:5::i;:::-;-1:-1:-1;;;;;3582:19:40;;3602:4;3608:6;3616:5;3623:4;3582:46;;;;;;;;-1:-1:-1;;;3582:46:40;;;;;;-1:-1:-1;;;;;3582:46:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3458:177:40;-1:-1:-1;;;;;;3458:177:40:o;626:164:36:-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:36;;;;;;;;;;;;735:17;:48::i;487:96:27:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;3641:216:40:-;3725:10;3762;3774:5;3752:28;;;;;;;;;;;;;;;;;;;;;3790:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;3790:15:40;-1:-1:-1;;;;;3790:15:40;;;;;3752:28;;-1:-1:-1;3752:28:40;;3834:5;;3822:10;;3815:35;;3790:15;;3815:35;-1:-1:-1;;;;;3815:35:40;;;;;;;;;;;;;;;3641:216;;;;;:::o;222:126:18:-;282:11;;:::i;:::-;312:29;324:2;337;312:3;:29::i;3863:430:40:-;3952:10;4056:11;3989:10;4001:5;3979:28;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4022:18:40;;;4018:269;;4070:10;4077:2;4070:6;:10::i;:::-;4056:24;-1:-1:-1;;;;;;4098:17:40;;;4094:183;;-1:-1:-1;;;;;4143:11:40;;;;;;;4135:20;;;;;;4094:183;;;4194:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;4194:15:40;-1:-1:-1;;;;;4194:15:40;;;;;:8;;4246:5;;4234:10;;4227:35;;4194:15;;4227:35;-1:-1:-1;;;;;4227:35:40;;;;;;;;;;;;;;;3863:430;;;;;;:::o;767:94:27:-;842:12;767:94;:::o;1481:148:18:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:18:o;228:4676:40:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" + "sourceMap": "228:4676:39:-;;;;;;;;;-1:-1:-1;;;228:4676:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:41;;;;;;;;;;;;;;;2831:92:39;;;;;;;;;;;;;;781:331;;;;;;;;;;-1:-1:-1;;;;;781:331:39;;;;;;;;;;;;57:58:41;;;;;;;;;;;;113:20:22;;;;;;;;;;;;1397:261:39;;;;;;;;;;;;-1:-1:-1;;;;;1397:261:39;;;;;269:107:26;;;;;;;;;;;;324:53:39;;;;;;;;;;;;1950:273;;;;;;;;;;;;-1:-1:-1;;;;;1950:273:39;;;;;492:75:41;;;;;;;;;;;;2464:212:39;;;;;;;;;;;;;;-1:-1:-1;;;;;2464:212:39;;;;;420:66:41;;;;;;;;;;;;796:272:35;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:35;;-1:-1:-1;796:272:35;;-1:-1:-1;;;;;;796:272:35;86:21:22;;;;;;;;;;;;121:63:41;;;;;;;;;;;;3003:87:39;;;;;;;;;;;;176:157:35;;;;;;;;;;-1:-1:-1;;;;;176:157:35;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:35;;-1:-1:-1;339:281:35;;-1:-1:-1;;;;;;339:281:35;3458:177:39;;;;;;;;;;-1:-1:-1;;;;;3458:177:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3458:177:39;;-1:-1:-1;3458:177:39;;-1:-1:-1;;;;;;3458:177:39;;;;;;;;;;;;;;;;;;626:164:35;;;;;;;;;;-1:-1:-1;;;;;626:164:35;;;;;;;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:41;;:::o;2831:92:39:-;2881:7;2907:9;;;;;;;;;;;-1:-1:-1;;;;;2907:9:39;;2831:92::o;781:331::-;140:19:26;;898:8:39;;140:24:26;132:33;;;;;;874:13:39;:11;:13::i;:::-;914:29;926:4;457:29:41;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;914:11:39;:29::i;:::-;898:46;;955:50;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;996:8:39;955:7;:50::i;:::-;;1015:44;235:16:41;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;1055:3:39;1015:7;:44::i;:::-;-1:-1:-1;;;;;;1070:14:39;;;1085:19;1070:35;;-1:-1:-1;;;1070:35:39;;;;;;-1:-1:-1;;;;;1070:35:39;;;;;;;;;;-1:-1:-1;1070:35:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:331;;;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:22:-;;;;:::o;1397:261:39:-;1526:18;375:1;1477:31;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;1502:5:39;1477:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;1556:50;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;1590:5:39;1597:8;1556:12;:50::i;:::-;;1627:24;1639:4;1645:5;1627:11;:24::i;:::-;1616:35;1397:261;-1:-1:-1;;;;;;;1397:261:39:o;269:107:26:-;350:19;;269:107;:::o;324:53:39:-;375:1;324:53;:::o;1950:273::-;2085:18;375:1;2036:31;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;2061:5:39;2036:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;2115:50;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;2149:5:39;2156:8;2115:12;:50::i;:::-;;2186:30;2204:4;2210:5;2186:17;:30::i;492:75:41:-;235:16;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;2464:212:39:-;2608:10;375:1;2552:22;2556:10;2568:5;2552:3;:22::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;4762:14;4807:12;2637:32;2645:10;2657:5;2664:4;2637:7;:32::i;:::-;2630:39;;4779:18;98:17:41;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;4779:6:39;:18::i;:::-;4762:35;-1:-1:-1;;4848:11:39;;4893:1;4886:8;;4878:17;;;;;;4667:1;;2464:212;;;;;;;;;:::o;420:66:41:-;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;420:66;:::o;796:272:35:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:35;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:35;;;;;;;;;;;;;;;1056:5;1049:12;;796:272;;;;;;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;121:63:41:-;167:17;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;121:63;:::o;3003:87:39:-;3039:4;3067:15;235:16:41;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;3067:6:39;:15::i;:::-;3055:28;;3003:87;:::o;176:157:35:-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:35;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:35:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;3458:177:39:-;3559:4;3582:5;:3;:5::i;:::-;-1:-1:-1;;;;;3582:19:39;;3602:4;3608:6;3616:5;3623:4;3582:46;;;;;;;;-1:-1:-1;;;3582:46:39;;;;;;-1:-1:-1;;;;;3582:46:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3458:177:39;-1:-1:-1;;;;;;3458:177:39:o;626:164:35:-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:35;;;;;;;;;;;;735:17;:48::i;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;3641:216:39:-;3725:10;3762;3774:5;3752:28;;;;;;;;;;;;;;;;;;;;;3790:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;3790:15:39;-1:-1:-1;;;;;3790:15:39;;;;;3752:28;;-1:-1:-1;3752:28:39;;3834:5;;3822:10;;3815:35;;3790:15;;3815:35;-1:-1:-1;;;;;3815:35:39;;;;;;;;;;;;;;;3641:216;;;;;:::o;222:126:17:-;282:11;;:::i;:::-;312:29;324:2;337;312:3;:29::i;3863:430:39:-;3952:10;4056:11;3989:10;4001:5;3979:28;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4022:18:39;;;4018:269;;4070:10;4077:2;4070:6;:10::i;:::-;4056:24;-1:-1:-1;;;;;;4098:17:39;;;4094:183;;-1:-1:-1;;;;;4143:11:39;;;;;;;4135:20;;;;;;4094:183;;;4194:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;4194:15:39;-1:-1:-1;;;;;4194:15:39;;;;;:8;;4246:5;;4234:10;;4227:35;;4194:15;;4227:35;-1:-1:-1;;;;;4227:35:39;;;;;;;;;;;;;;;3863:430;;;;;;:::o;767:94:26:-;842:12;767:94;:::o;1481:148:17:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:17:o;228:4676:39:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -13281,12 +12896,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029", - "sourceMap": "95:717:41:-;;;419:126;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;419:126:41;;-1:-1:-1;478:4:41;;98:17:42;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;483:40:41;;;;;;;;;;;;;;;;;;;;;478:46;;;;;;;;;;;;;:60;;-1:-1:-1;;;;;478:60:41;;;;-1:-1:-1;;;;;;478:60:41;;;;;;;;;-1:-1:-1;95:717:41;;;;;;" + "sourceMap": "95:717:40:-;;;419:126;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;419:126:40;;-1:-1:-1;478:4:40;;98:17:41;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;483:40:40;;;;;;;;;;;;;;;;;;;;;478:46;;;;;;;;;;;;;:60;;-1:-1:-1;;;;;478:60:40;;;;-1:-1:-1;;;;;;478:60:40;;;;;;;;;-1:-1:-1;95:717:40;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029", - "sourceMap": "95:717:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:40;776:4;:16;98:17:42;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;776:16:41;;;;;;;;;;;;;;;;;;;;;;;;;;;794:8;;763:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;763:12:41;;-1:-1:-1;;;;;763:40:41:i;:::-;95:717;258:72:42;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;311:628:26;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:42;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:26:-;1005:4;1062:11;;1100:8;;945:170::o" + "sourceMap": "95:717:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:40;776:4;:16;98:17:41;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;776:16:40;;;;;;;;;;;;;;;;;;;;;;;;;;;794:8;;763:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;763:12:40;;-1:-1:-1;;;;;763:40:40:i;:::-;95:717;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;311:628:25;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o" }, "gasEstimates": { "creation": { @@ -13431,12 +13046,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029", - "sourceMap": "26:544:42:-;;;;;;;;;;;;;;;;;" + "sourceMap": "26:544:41:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029", - "sourceMap": "26:544:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" + "sourceMap": "26:544:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" }, "gasEstimates": { "creation": { @@ -13595,12 +13210,12 @@ "bytecode": { "linkReferences": {}, "object": "6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029", - "sourceMap": "573:91:42:-;;;;;;;;;;;;;;;;;" + "sourceMap": "573:91:41:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, "object": "60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029", - "sourceMap": "573:91:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" + "sourceMap": "573:91:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" }, "gasEstimates": { "creation": { @@ -13977,14 +13592,14 @@ }, { "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:39:5: Warning: Function state mutability can be restricted to pure\n function returnedDataDecoded() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", + "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:54:5: Warning: Function state mutability can be restricted to pure\n function returnedData() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", "message": "Function state mutability can be restricted to pure", "severity": "warning", "type": "Warning" }, { "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:54:5: Warning: Function state mutability can be restricted to pure\n function returnedData() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", + "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:39:5: Warning: Function state mutability can be restricted to pure\n function returnedDataDecoded() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", "message": "Function state mutability can be restricted to pure", "severity": "warning", "type": "Warning" @@ -14030,98 +13645,95 @@ "./contracts/Pledges.sol": { "id": 12 }, - "./contracts/test/StandardToken.sol": { + "./contracts/test/TestSimpleDelegatePlugin.sol": { "id": 13 }, - "./contracts/test/TestSimpleDelegatePlugin.sol": { + "./contracts/test/TestSimpleProjectPlugin.sol": { "id": 14 }, - "./contracts/test/TestSimpleProjectPlugin.sol": { + "./contracts/test/TestSimpleProjectPluginFactory.sol": { "id": 15 }, - "./contracts/test/TestSimpleProjectPluginFactory.sol": { + "@aragon/os/contracts/acl/ACL.sol": { "id": 16 }, - "@aragon/os/contracts/acl/ACL.sol": { + "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { "id": 17 }, - "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { + "@aragon/os/contracts/acl/IACL.sol": { "id": 18 }, - "@aragon/os/contracts/acl/IACL.sol": { + "@aragon/os/contracts/apps/AppProxyBase.sol": { "id": 19 }, - "@aragon/os/contracts/apps/AppProxyBase.sol": { + "@aragon/os/contracts/apps/AppProxyPinned.sol": { "id": 20 }, - "@aragon/os/contracts/apps/AppProxyPinned.sol": { + "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { "id": 21 }, - "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { + "@aragon/os/contracts/apps/AppStorage.sol": { "id": 22 }, - "@aragon/os/contracts/apps/AppStorage.sol": { + "@aragon/os/contracts/apps/AragonApp.sol": { "id": 23 }, - "@aragon/os/contracts/apps/AragonApp.sol": { + "@aragon/os/contracts/apps/IAppProxy.sol": { "id": 24 }, - "@aragon/os/contracts/apps/IAppProxy.sol": { + "@aragon/os/contracts/common/DelegateProxy.sol": { "id": 25 }, - "@aragon/os/contracts/common/DelegateProxy.sol": { + "@aragon/os/contracts/common/Initializable.sol": { "id": 26 }, - "@aragon/os/contracts/common/Initializable.sol": { + "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { "id": 27 }, - "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { + "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { "id": 28 }, - "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { + "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { "id": 29 }, - "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { + "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { "id": 30 }, - "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { + "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { "id": 31 }, - "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { + "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { "id": 32 }, - "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { + "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { "id": 33 }, - "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { + "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { "id": 34 }, - "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { + "@aragon/os/contracts/factory/AppProxyFactory.sol": { "id": 35 }, - "@aragon/os/contracts/factory/AppProxyFactory.sol": { + "@aragon/os/contracts/factory/DAOFactory.sol": { "id": 36 }, - "@aragon/os/contracts/factory/DAOFactory.sol": { + "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { "id": 37 }, - "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { + "@aragon/os/contracts/kernel/IKernel.sol": { "id": 38 }, - "@aragon/os/contracts/kernel/IKernel.sol": { + "@aragon/os/contracts/kernel/Kernel.sol": { "id": 39 }, - "@aragon/os/contracts/kernel/Kernel.sol": { + "@aragon/os/contracts/kernel/KernelProxy.sol": { "id": 40 }, - "@aragon/os/contracts/kernel/KernelProxy.sol": { + "@aragon/os/contracts/kernel/KernelStorage.sol": { "id": 41 }, - "@aragon/os/contracts/kernel/KernelStorage.sol": { - "id": 42 - }, "giveth-common-contracts/contracts/ERC20.sol": { - "id": 43 + "id": 42 } } } \ No newline at end of file From c66b680e0c062e403d61cc372a98a850320981aa Mon Sep 17 00:00:00 2001 From: perissology Date: Wed, 28 Mar 2018 15:32:02 -0700 Subject: [PATCH 44/52] added a few more tests --- package.json | 2 +- test/NormalOperation.js | 33 ++++- test/Vault.js | 4 +- yarn.lock | 321 ++++++++++++++++++++-------------------- 4 files changed, 191 insertions(+), 169 deletions(-) diff --git a/package.json b/package.json index 822565b..67f23c3 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "lerna": "^2.2.0", "mocha": "^3.5.0", "random-bytes": "^1.0.0", - "solcpiler": "https://github.com/perissology/solcpiler.git#b60ac51b", + "solcpiler": "https://github.com/perissology/solcpiler.git#9862d1f", "web3": "1.0.0-beta.31" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", diff --git a/test/NormalOperation.js b/test/NormalOperation.js index dc7ee3b..090871f 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -389,8 +389,37 @@ describe('LiquidPledging test', function () { await liquidPledging.addProject(`ProjectLevel${i}`, '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1, $extraGas: 100000 }); } - assertFail( + await assertFail( liquidPledging.addProject('ProjectLevel21', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1, gas: 4000000 }) ); - }) + }); + + it('should prevent donation to 0 receiverId', async () => { + await assertFail(liquidPledging.donate(1, 0, giver1Token.$address, 1, { from: giver1, gas: 6700000 })); + }); + + it('should prevent donation from 0 giverId', async () => { + await assertFail(liquidPledging.donate(0, 1, giver1Token.$address, 1, { from: giver1, gas: 6700000 })); + }); + + it('should donate on behalf of another addy', async () => { + const oldNPledges = await liquidPledging.numberOfPledges(); + const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); + const preGiver1Bal = await giver1Token.balanceOf(giver1); + await liquidPledging.addGiverAndDonate(1, accounts[8], giver1Token.$address, 11, { from: giver1, $extraGas: 200000 }); + const nPledges = await liquidPledging.numberOfPledges(); + assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 1); + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); + assert.equal(utils.toDecimal(nAdmins), utils.toDecimal(oldNAdmins) + 1); + const res = await liquidPledging.getPledgeAdmin(nAdmins); + assert.equal(res[0], 0); // Giver + assert.equal(res[1], accounts[8]); + assert.equal(res[2], ''); + assert.equal(res[3], ''); + assert.equal(res[4], 259200); // default to 3 day commitTime + const giver1Bal = await giver1Token.balanceOf(giver1); + assert.equal(new utils.BN(preGiver1Bal).subn(11).toString(), giver1Bal); + await printState(liquidPledgingState); + console.log(liquidPledging.$address); + }); }); diff --git a/test/Vault.js b/test/Vault.js index 7252290..3ee983b 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -101,7 +101,7 @@ describe('Vault test', function () { it('escapeFunds should send funds to escapeHatchDestination', async function () { const preBalance = await token.balanceOf(escapeHatchDestination); - assertFail(vault.escapeFunds(0x0, 1000, { from: escapeHatchCaller, gas: 1000000})); + await assertFail(vault.escapeFunds(0x0, 1000, { from: escapeHatchCaller, gas: 1000000})); await vault.escapeFunds(token.$address, 1000, { from: escapeHatchCaller, $extraGas: 200000 }); @@ -123,7 +123,7 @@ describe('Vault test', function () { // set permission for 2nd param (p.amount) <= 300 await acl.grantPermissionP(restrictedPaymentsConfirmer, vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), ["0x010600000000000000000000000000000000000000000000000000000000012c"], {$extraGas: 200000}); - assertFail(vault.confirmPayment(1, { from: restrictedPaymentsConfirmer, gas: 4000000 })); + await assertFail(vault.confirmPayment(1, { from: restrictedPaymentsConfirmer, gas: 4000000 })); await vault.confirmPayment(0, { from: restrictedPaymentsConfirmer, $extraGas: 200000 }); }); }); diff --git a/yarn.lock b/yarn.lock index e38915f..e44b7cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -173,7 +173,7 @@ ansi-styles@^3.2.0: dependencies: color-convert "^1.9.0" -any-promise@^1.0.0, any-promise@^1.3.0: +any-promise@1.3.0, any-promise@^1.0.0, any-promise@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -864,10 +864,6 @@ big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" -bignumber.js@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1" - binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" @@ -1592,10 +1588,6 @@ crypto-browserify@^3.11.0, crypto-browserify@^3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-js@^3.1.4: - version "3.1.8" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" - currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -2094,21 +2086,13 @@ eth-contract-class@0.0.6: dependencies: web3-core-promievent "^1.0.0-beta.21" -eth-contract-class@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/eth-contract-class/-/eth-contract-class-0.0.7.tgz#d3c46341a2255fb046165f2d763e28d1d040581e" +eth-contract-class@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/eth-contract-class/-/eth-contract-class-0.0.8.tgz#0ba4590e6185f156c08b7f44b0581fd8d6b7c5b0" dependencies: web3-core-promievent "^1.0.0-beta.21" -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26, eth-lib@^0.1.27: +eth-lib@0.1.27, eth-lib@^0.1.26, eth-lib@^0.1.27: version "0.1.27" resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.27.tgz#f0b0fd144f865d2d6bf8257a40004f2e75ca1dd6" dependencies: @@ -2120,6 +2104,14 @@ eth-lib@^0.1.26, eth-lib@^0.1.27: ws "^3.0.0" xhr-request-promise "^0.1.2" +eth-lib@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" @@ -4717,17 +4709,17 @@ solc@^0.4.19: semver "^5.3.0" yargs "^4.7.1" -solcpiler@^0.0.15: - version "0.0.15" - resolved "https://registry.yarnpkg.com/solcpiler/-/solcpiler-0.0.15.tgz#fee98c24937fca0eb602f8d6d99683c7d8bc2e87" +"solcpiler@https://github.com/perissology/solcpiler.git#9862d1f": + version "0.0.18" + resolved "https://github.com/perissology/solcpiler.git#9862d1f09a402f93b3ba159b6fbca0d5f6c5e93b" dependencies: app-root-path "^2.0.1" async "^2.5.0" - eth-contract-class "0.0.7" + eth-contract-class "^0.0.8" glob "^7.1.2" lodash "^4.17.4" solc "^0.4.19" - web3 "^0.19.1" + web3-utils "^1.0.0-beta.30" yargs "^8.0.2" solium@^0.5.5: @@ -5255,10 +5247,6 @@ utf8@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.1.tgz#2e01db02f7d8d0944f77104f1609eb0c304cf768" -utf8@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" - util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5330,180 +5318,187 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -web3-bzz@^1.0.0-beta.22: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.30.tgz#2434da183c239aaaa5c013f62307429ea91dd706" +web3-bzz@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.31.tgz#aeba7c955861a99ba92dd1ca8f7c7a127832859d" dependencies: got "7.1.0" swarm-js "0.1.37" underscore "1.8.3" -web3-core-helpers@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.30.tgz#a000cee3f0a09eea13d74b5730335d4635fe1f2f" +web3-core-helpers@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.31.tgz#7044c8f3d3f735158ba1e66b84f6c4090882165c" dependencies: underscore "1.8.3" - web3-eth-iban "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-eth-iban "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-core-method@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.30.tgz#8dd6ff789e8d1563b8786d13a78c7facefae471c" +web3-core-method@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.31.tgz#21190b9b8cf1503513e838b0f4eef7260fee093b" dependencies: underscore "1.8.3" - web3-core-helpers "1.0.0-beta.30" - web3-core-promievent "1.0.0-beta.30" - web3-core-subscriptions "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" + web3-core-promievent "1.0.0-beta.31" + web3-core-subscriptions "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-core-promievent@1.0.0-beta.30, web3-core-promievent@^1.0.0-beta.21: +web3-core-promievent@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.31.tgz#dda95be65ecd7924e300a5e98477c1bb0a57e8f3" + dependencies: + any-promise "1.3.0" + eventemitter3 "1.1.1" + +web3-core-promievent@^1.0.0-beta.21: version "1.0.0-beta.30" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.30.tgz#6205192bfb097441132226a5939ec5aed3a8a291" dependencies: bluebird "3.3.1" eventemitter3 "1.1.1" -web3-core-requestmanager@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.30.tgz#6ee56fb8a6cb85fd01b3080854f50d64e52240c6" +web3-core-requestmanager@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.31.tgz#4bf667b414d46e066d9930994f34f46fb408fbe7" dependencies: underscore "1.8.3" - web3-core-helpers "1.0.0-beta.30" - web3-providers-http "1.0.0-beta.30" - web3-providers-ipc "1.0.0-beta.30" - web3-providers-ws "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" + web3-providers-http "1.0.0-beta.31" + web3-providers-ipc "1.0.0-beta.31" + web3-providers-ws "1.0.0-beta.31" -web3-core-subscriptions@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.30.tgz#31652c75356c3f67e5a19cd14b8d314bad4e2127" +web3-core-subscriptions@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.31.tgz#7e9006de20a8b0407ac1364ef56b87cfc4d0f24b" dependencies: eventemitter3 "1.1.1" underscore "1.8.3" - web3-core-helpers "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" -web3-core@1.0.0-beta.30, web3-core@^1.0.0-beta.24: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.30.tgz#f75f4d3b85be74c7674637921c3e013bc5d27679" +web3-core@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.31.tgz#abd149cc412c85365bf4d1197c749e3f50e3eaa1" dependencies: - web3-core-helpers "1.0.0-beta.30" - web3-core-method "1.0.0-beta.30" - web3-core-requestmanager "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" + web3-core-method "1.0.0-beta.31" + web3-core-requestmanager "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-eth-abi@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.30.tgz#6ea52c999a8505b47c2f88ba61d2a680a1066409" +web3-eth-abi@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.31.tgz#c50e39edc20d16b4c359029e829b841394c72fc1" dependencies: bn.js "4.11.6" underscore "1.8.3" - web3-core-helpers "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-eth-accounts@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.30.tgz#8f0a1b342c4283812372242a6e2df268887b3b70" +web3-eth-accounts@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.31.tgz#3279bd0696d82bc4e152cc1d756c7be22d3192ad" dependencies: - bluebird "3.3.1" + any-promise "^1.3.0" crypto-browserify "^3.12.0" eth-lib "0.2.7" scrypt.js "0.2.0" underscore "1.8.3" uuid "2.0.1" - web3-core "1.0.0-beta.30" - web3-core-helpers "1.0.0-beta.30" - web3-core-method "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core "1.0.0-beta.31" + web3-core-helpers "1.0.0-beta.31" + web3-core-method "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-eth-contract@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.30.tgz#d7eba2385084dff3c75aac48235af2c8d2d6a258" +web3-eth-contract@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.31.tgz#27946433f91d8953013e2d97fd8b78a9ed6b6edc" dependencies: underscore "1.8.3" - web3-core "1.0.0-beta.30" - web3-core-helpers "1.0.0-beta.30" - web3-core-method "1.0.0-beta.30" - web3-core-promievent "1.0.0-beta.30" - web3-core-subscriptions "1.0.0-beta.30" - web3-eth-abi "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core "1.0.0-beta.31" + web3-core-helpers "1.0.0-beta.31" + web3-core-method "1.0.0-beta.31" + web3-core-promievent "1.0.0-beta.31" + web3-core-subscriptions "1.0.0-beta.31" + web3-eth-abi "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-eth-iban@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.30.tgz#3b080a5c4da1fa37477b17e4c900781b92150645" +web3-eth-iban@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.31.tgz#ed64bed333bb040a6f294fb4e9d18eaddbebffca" dependencies: bn.js "^4.11.6" - web3-utils "1.0.0-beta.30" + web3-utils "1.0.0-beta.31" -web3-eth-personal@1.0.0-beta.30, web3-eth-personal@^1.0.0-beta.24: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.30.tgz#8bd4ef40b3b5f841dd3a8b97873d9dc791caf748" +web3-eth-personal@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.31.tgz#2b0d6085920e9ddcdfbbadf20a715f0cc3771d80" dependencies: - web3-core "1.0.0-beta.30" - web3-core-helpers "1.0.0-beta.30" - web3-core-method "1.0.0-beta.30" - web3-net "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core "1.0.0-beta.31" + web3-core-helpers "1.0.0-beta.31" + web3-core-method "1.0.0-beta.31" + web3-net "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-eth@^1.0.0-beta.24: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.30.tgz#029b15e14cb608b9cfe02603b504d651870f0501" +web3-eth@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.31.tgz#b7b4b075534b3a3b0ab5b5697bd5085d79eb61c6" dependencies: underscore "1.8.3" - web3-core "1.0.0-beta.30" - web3-core-helpers "1.0.0-beta.30" - web3-core-method "1.0.0-beta.30" - web3-core-subscriptions "1.0.0-beta.30" - web3-eth-abi "1.0.0-beta.30" - web3-eth-accounts "1.0.0-beta.30" - web3-eth-contract "1.0.0-beta.30" - web3-eth-iban "1.0.0-beta.30" - web3-eth-personal "1.0.0-beta.30" - web3-net "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core "1.0.0-beta.31" + web3-core-helpers "1.0.0-beta.31" + web3-core-method "1.0.0-beta.31" + web3-core-subscriptions "1.0.0-beta.31" + web3-eth-abi "1.0.0-beta.31" + web3-eth-accounts "1.0.0-beta.31" + web3-eth-contract "1.0.0-beta.31" + web3-eth-iban "1.0.0-beta.31" + web3-eth-personal "1.0.0-beta.31" + web3-net "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-net@1.0.0-beta.30, web3-net@^1.0.0-beta.24: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.30.tgz#0a352ede296e6d4b7f88b67aa474e49703de73bf" +web3-net@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.31.tgz#d26bfca0ea1752f5fd5d72134e00e513ad1e7e19" dependencies: - web3-core "1.0.0-beta.30" - web3-core-method "1.0.0-beta.30" - web3-utils "1.0.0-beta.30" + web3-core "1.0.0-beta.31" + web3-core-method "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" -web3-providers-http@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.0.0-beta.30.tgz#cda8d9133c6f31d1a812dc5a42af00cbea98cd86" +web3-providers-http@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.0.0-beta.31.tgz#13409ef44ae1623cd5c4dcd3db4b08d6fbba4532" dependencies: - web3-core-helpers "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" xhr2 "0.1.4" -web3-providers-ipc@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.30.tgz#ee2d8d18a3f120b777044a56e67e0aee20854587" +web3-providers-ipc@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.31.tgz#ce6da670faa19458e622dfed9be400584fc33724" dependencies: oboe "2.1.3" underscore "1.8.3" - web3-core-helpers "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" -web3-providers-ws@1.0.0-beta.30: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.30.tgz#9ae69a9ead8a8761f86379fa347b6db5ae44b12d" +web3-providers-ws@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.31.tgz#cc71b70e8d8b53201a533743707c30e8c099e28d" dependencies: underscore "1.8.3" - web3-core-helpers "1.0.0-beta.30" + web3-core-helpers "1.0.0-beta.31" websocket "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" -web3-shh@^1.0.0-beta.24: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.30.tgz#2bfe3220d958ff4ca592017790852bc57b7b0ca7" +web3-shh@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.31.tgz#016d204be2bba1b7f3b3915027219d274efe5e52" dependencies: - web3-core "1.0.0-beta.30" - web3-core-method "1.0.0-beta.30" - web3-core-subscriptions "1.0.0-beta.30" - web3-net "1.0.0-beta.30" + web3-core "1.0.0-beta.31" + web3-core-method "1.0.0-beta.31" + web3-core-subscriptions "1.0.0-beta.31" + web3-net "1.0.0-beta.31" -web3-utils@1.0.0-beta.30, web3-utils@^1.0.0-beta.24: - version "1.0.0-beta.30" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.30.tgz#eae408cc8d6d6fecc8d5097cfead51773f231ff9" +web3-utils@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.31.tgz#0f18125d3e9698ae82cbf6fa29adc1e1616f2936" dependencies: bn.js "4.11.6" eth-lib "^0.1.27" @@ -5513,27 +5508,29 @@ web3-utils@1.0.0-beta.30, web3-utils@^1.0.0-beta.24: underscore "1.8.3" utf8 "2.1.1" -web3@1.0.0-beta.24: - version "1.0.0-beta.24" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.24.tgz#0b653d6a50f407b37f593371fb6ee1bd3a1f27c2" +web3-utils@^1.0.0-beta.30: + version "1.0.0-beta.33" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.33.tgz#e091b7994f09b714b0198a4057d3ad2eb8cbe238" dependencies: - web3-bzz "^1.0.0-beta.22" - web3-core "^1.0.0-beta.24" - web3-eth "^1.0.0-beta.24" - web3-eth-personal "^1.0.0-beta.24" - web3-net "^1.0.0-beta.24" - web3-shh "^1.0.0-beta.24" - web3-utils "^1.0.0-beta.24" + bn.js "4.11.6" + eth-lib "0.1.27" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randomhex "0.1.5" + underscore "1.8.3" + utf8 "2.1.1" -web3@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-0.19.1.tgz#e763d5b1107c4bc24abd4f8cbee1ba3659e6eb31" +web3@1.0.0-beta.31: + version "1.0.0-beta.31" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.31.tgz#c56239e5271407c982cb8584a9dfc81fdac47e36" dependencies: - bignumber.js "^4.0.2" - crypto-js "^3.1.4" - utf8 "^2.1.1" - xhr2 "*" - xmlhttprequest "*" + web3-bzz "1.0.0-beta.31" + web3-core "1.0.0-beta.31" + web3-eth "1.0.0-beta.31" + web3-eth-personal "1.0.0-beta.31" + web3-net "1.0.0-beta.31" + web3-shh "1.0.0-beta.31" + web3-utils "1.0.0-beta.31" webpack-sources@^1.0.1: version "1.1.0" @@ -5681,7 +5678,7 @@ xhr-request@^1.0.1: url-set-query "^1.0.0" xhr "^2.0.4" -xhr2@*, xhr2@0.1.4: +xhr2@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" @@ -5694,10 +5691,6 @@ xhr@^2.0.4, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" -xmlhttprequest@*: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" From 71e2b159e147c93ec36928f2e5117c664ad84d8f Mon Sep 17 00:00:00 2001 From: perissology Date: Wed, 28 Mar 2018 15:52:32 -0700 Subject: [PATCH 45/52] remove print statement from test --- test/NormalOperation.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 090871f..49c835c 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -406,20 +406,23 @@ describe('LiquidPledging test', function () { const oldNPledges = await liquidPledging.numberOfPledges(); const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); const preGiver1Bal = await giver1Token.balanceOf(giver1); + await liquidPledging.addGiverAndDonate(1, accounts[8], giver1Token.$address, 11, { from: giver1, $extraGas: 200000 }); + const nPledges = await liquidPledging.numberOfPledges(); assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 1); + const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(utils.toDecimal(nAdmins), utils.toDecimal(oldNAdmins) + 1); + const res = await liquidPledging.getPledgeAdmin(nAdmins); assert.equal(res[0], 0); // Giver assert.equal(res[1], accounts[8]); assert.equal(res[2], ''); assert.equal(res[3], ''); assert.equal(res[4], 259200); // default to 3 day commitTime + const giver1Bal = await giver1Token.balanceOf(giver1); assert.equal(new utils.BN(preGiver1Bal).subn(11).toString(), giver1Bal); - await printState(liquidPledgingState); - console.log(liquidPledging.$address); }); }); From 137e8be188d6eb0bdf1ae0e902239d80e6fcd7eb Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 29 Mar 2018 07:18:05 -0700 Subject: [PATCH 46/52] add url to PledgeAdmin events --- contracts/PledgeAdmins.sol | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/contracts/PledgeAdmins.sol b/contracts/PledgeAdmins.sol index 55731c1..d3d56d0 100644 --- a/contracts/PledgeAdmins.sol +++ b/contracts/PledgeAdmins.sol @@ -28,12 +28,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -89,7 +89,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -117,7 +117,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -153,7 +153,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -183,7 +183,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -229,7 +229,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -260,7 +260,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// From 36b72e5c457d4c8c28570d3f647ff0abae0dcdb8 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 29 Mar 2018 07:18:16 -0700 Subject: [PATCH 47/52] rebuild --- build/LPFactory.sol.js | 24 +-- build/LPFactory_all.sol | 24 +-- build/LiquidPledging.sol.js | 22 +- build/LiquidPledgingBase.sol.js | 12 +- build/LiquidPledgingBase_all.sol | 24 +-- build/LiquidPledgingMock.sol.js | 28 +-- build/LiquidPledgingMock_all.sol | 24 +-- build/LiquidPledging_all.sol | 24 +-- build/PledgeAdmins.sol.js | 16 +- build/PledgeAdmins_all.sol | 48 ++--- build/TestSimpleDelegatePlugin.sol.js | 36 ++-- build/TestSimpleDelegatePlugin_all.sol | 40 ++-- build/TestSimpleProjectPlugin.sol.js | 24 +-- build/TestSimpleProjectPluginFactory.sol.js | 28 +-- build/TestSimpleProjectPluginFactory_all.sol | 24 +-- build/TestSimpleProjectPlugin_all.sol | 24 +-- build/solcStandardInput.json | 92 ++++----- build/solcStandardOutput.json | 203 ++++++++++++++----- 18 files changed, 408 insertions(+), 309 deletions(-) diff --git a/build/LPFactory.sol.js b/build/LPFactory.sol.js index 39c17b4..86596cd 100644 --- a/build/LPFactory.sol.js +++ b/build/LPFactory.sol.js @@ -153,32 +153,32 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.LPConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] exports.LPConstantsByteCode = "0x6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" exports.LPConstantsRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" exports['_./contracts/LPConstants.sol_keccak256'] = "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314" exports.LPFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"newLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vaultBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vaultBase","type":"address"},{"name":"_lpBase","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"vault","type":"address"}],"name":"DeployVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"liquidPledging","type":"address"}],"name":"DeployLiquidPledging","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] -exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f2500296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f250029" +exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd400296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd40029" exports['_./contracts/LPFactory.sol_keccak256'] = "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc" exports.LPFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"newLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vaultBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vaultBase","type":"address"},{"name":"_lpBase","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"vault","type":"address"}],"name":"DeployVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"liquidPledging","type":"address"}],"name":"DeployLiquidPledging","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] -exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f2500296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f250029" +exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd400296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" +exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd40029" exports['_./contracts/LPFactory.sol_keccak256'] = "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPFactory_all.sol b/build/LPFactory_all.sol index a3ce3ee..b304cff 100644 --- a/build/LPFactory_all.sol +++ b/build/LPFactory_all.sol @@ -2170,12 +2170,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -2231,7 +2231,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -2259,7 +2259,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -2295,7 +2295,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -2325,7 +2325,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -2371,7 +2371,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -2402,7 +2402,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js index 38a9f22..89e7674 100644 --- a/build/LiquidPledging.sol.js +++ b/build/LiquidPledging.sol.js @@ -65,10 +65,10 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" @@ -81,16 +81,16 @@ exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGIST exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js index 8938ca5..2b82fc8 100644 --- a/build/LiquidPledgingBase.sol.js +++ b/build/LiquidPledgingBase.sol.js @@ -65,10 +65,10 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" @@ -81,11 +81,11 @@ exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGIST exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" diff --git a/build/LiquidPledgingBase_all.sol b/build/LiquidPledgingBase_all.sol index 1440603..8fa8343 100644 --- a/build/LiquidPledgingBase_all.sol +++ b/build/LiquidPledgingBase_all.sol @@ -740,12 +740,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -801,7 +801,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -829,7 +829,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -865,7 +865,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -895,7 +895,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -941,7 +941,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -972,7 +972,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js index 4808ca1..089289e 100644 --- a/build/LiquidPledgingMock.sol.js +++ b/build/LiquidPledgingMock.sol.js @@ -65,10 +65,10 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" @@ -81,13 +81,13 @@ exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGIST exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" @@ -124,12 +124,12 @@ exports.KernelAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","output exports.KernelByteCode = "0x6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" exports.KernelRuntimeByteCode = "0x606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" exports['_@aragon/os/contracts/kernel/Kernel.sol_keccak256'] = "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d" -exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005586833981016040528080519150819050806200004d8164010000000062004e556200005682021704565b505050620000d5565b6200006e64010000000062005066620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005080620000d182021704565b600355565b4390565b6154a180620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" -exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" +exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005698833981016040528080519150819050806200004d8164010000000062004f676200005682021704565b505050620000d5565b6200006e64010000000062005178620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005192620000d182021704565b600355565b4390565b6155b380620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" +exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd" -exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005586833981016040528080519150819050806200004d8164010000000062004e556200005682021704565b505050620000d5565b6200006e64010000000062005066620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005080620000d182021704565b600355565b4390565b6154a180620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" -exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029" +exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005698833981016040528080519150819050806200004d8164010000000062004f676200005682021704565b505050620000d5565b6200006e64010000000062005178620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005192620000d182021704565b600355565b4390565b6155b380620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" +exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol index ea9188f..2dc8257 100644 --- a/build/LiquidPledgingMock_all.sol +++ b/build/LiquidPledgingMock_all.sol @@ -740,12 +740,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -801,7 +801,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -829,7 +829,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -865,7 +865,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -895,7 +895,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -941,7 +941,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -972,7 +972,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol index a8881b8..31caf87 100644 --- a/build/LiquidPledging_all.sol +++ b/build/LiquidPledging_all.sol @@ -740,12 +740,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -801,7 +801,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -829,7 +829,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -865,7 +865,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -895,7 +895,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -941,7 +941,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -972,7 +972,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// diff --git a/build/PledgeAdmins.sol.js b/build/PledgeAdmins.sol.js index bcceaf7..aed78cf 100644 --- a/build/PledgeAdmins.sol.js +++ b/build/PledgeAdmins.sol.js @@ -65,12 +65,12 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/PledgeAdmins_all.sol b/build/PledgeAdmins_all.sol index e5ce92f..9223a1b 100644 --- a/build/PledgeAdmins_all.sol +++ b/build/PledgeAdmins_all.sol @@ -740,12 +740,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -801,7 +801,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -829,7 +829,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -865,7 +865,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -895,7 +895,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -941,7 +941,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -972,7 +972,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// @@ -1103,12 +1103,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -1164,7 +1164,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -1192,7 +1192,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -1228,7 +1228,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -1258,7 +1258,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -1304,7 +1304,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -1335,7 +1335,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// diff --git a/build/TestSimpleDelegatePlugin.sol.js b/build/TestSimpleDelegatePlugin.sol.js index f51a6e0..333a574 100644 --- a/build/TestSimpleDelegatePlugin.sol.js +++ b/build/TestSimpleDelegatePlugin.sol.js @@ -65,10 +65,10 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" @@ -81,26 +81,26 @@ exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGIST exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.TestSimpleDelegatePluginAbi = [{"constant":true,"inputs":[],"name":"idDelegate","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_liquidPledging","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" -exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" +exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" +exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" exports.TestSimpleDelegatePluginFactoryAbi = [{"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] -exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a800296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" -exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a80029" -exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xfde1c913002ece2fae9c5b208971d9b1f56b2a30762e673901c6d2131d28919f" +exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b000296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" +exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b00029" +exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xbf3f85c43cc59d922946a49ba872a8b634210f2d2169111001429e31dab2638a" exports.TestSimpleDelegatePluginAbi = [{"constant":true,"inputs":[],"name":"idDelegate","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_liquidPledging","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" -exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" +exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" +exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" exports.TestSimpleDelegatePluginFactoryAbi = [{"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] -exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a800296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029" -exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a80029" -exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xfde1c913002ece2fae9c5b208971d9b1f56b2a30762e673901c6d2131d28919f" +exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b000296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" +exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b00029" +exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xbf3f85c43cc59d922946a49ba872a8b634210f2d2169111001429e31dab2638a" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleDelegatePlugin_all.sol b/build/TestSimpleDelegatePlugin_all.sol index 2384c4e..165ee89 100644 --- a/build/TestSimpleDelegatePlugin_all.sol +++ b/build/TestSimpleDelegatePlugin_all.sol @@ -740,12 +740,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -801,7 +801,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -829,7 +829,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -865,7 +865,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -895,7 +895,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -941,7 +941,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -972,7 +972,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// @@ -2384,7 +2384,7 @@ contract TestSimpleDelegatePlugin { event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) { + function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) public { require(msg.sender != tx.origin); // Avoids being created directly by mistake. liquidPledging = _liquidPledging; initPending = true; @@ -2394,7 +2394,7 @@ contract TestSimpleDelegatePlugin { string name, string url, uint64 commitTime - ) { + ) public { require(initPending); idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); initPending = false; @@ -2426,12 +2426,12 @@ contract TestSimpleDelegatePlugin { contract TestSimpleDelegatePluginFactory { - function TestSimpleDelegatePluginFactory ( + function TestSimpleDelegatePluginFactory( LiquidPledging liquidPledging, string name, string url, uint64 commitTime - ) { + ) public { TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); d.init(name, url, commitTime); } @@ -2455,7 +2455,7 @@ contract TestSimpleDelegatePlugin { event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) { + function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) public { require(msg.sender != tx.origin); // Avoids being created directly by mistake. liquidPledging = _liquidPledging; initPending = true; @@ -2465,7 +2465,7 @@ contract TestSimpleDelegatePlugin { string name, string url, uint64 commitTime - ) { + ) public { require(initPending); idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); initPending = false; @@ -2497,12 +2497,12 @@ contract TestSimpleDelegatePlugin { contract TestSimpleDelegatePluginFactory { - function TestSimpleDelegatePluginFactory ( + function TestSimpleDelegatePluginFactory( LiquidPledging liquidPledging, string name, string url, uint64 commitTime - ) { + ) public { TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); d.init(name, url, commitTime); } diff --git a/build/TestSimpleProjectPlugin.sol.js b/build/TestSimpleProjectPlugin.sol.js index 776b6e1..5a2dcd1 100644 --- a/build/TestSimpleProjectPlugin.sol.js +++ b/build/TestSimpleProjectPlugin.sol.js @@ -65,10 +65,10 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" @@ -81,20 +81,20 @@ exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGIST exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory.sol.js b/build/TestSimpleProjectPluginFactory.sol.js index 2e688f9..770fb36 100644 --- a/build/TestSimpleProjectPluginFactory.sol.js +++ b/build/TestSimpleProjectPluginFactory.sol.js @@ -65,10 +65,10 @@ exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whiteli exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14" +exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] +exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" +exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" @@ -81,24 +81,24 @@ exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGIST exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] exports.LiquidPledgingBaseByteCode = "0x" exports.LiquidPledgingBaseRuntimeByteCode = "0x" exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029" +exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] +exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" +exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029" +exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" +exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" -exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" +exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" +exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" exports['_./contracts/test/TestSimpleProjectPluginFactory.sol_keccak256'] = "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08" exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" -exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029" +exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" +exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" exports['_./contracts/test/TestSimpleProjectPluginFactory.sol_keccak256'] = "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08" exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory_all.sol b/build/TestSimpleProjectPluginFactory_all.sol index 6cdeb01..3533ed1 100644 --- a/build/TestSimpleProjectPluginFactory_all.sol +++ b/build/TestSimpleProjectPluginFactory_all.sol @@ -740,12 +740,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -801,7 +801,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -829,7 +829,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -865,7 +865,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -895,7 +895,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -941,7 +941,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -972,7 +972,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// diff --git a/build/TestSimpleProjectPlugin_all.sol b/build/TestSimpleProjectPlugin_all.sol index 13efb93..79a0e5d 100644 --- a/build/TestSimpleProjectPlugin_all.sol +++ b/build/TestSimpleProjectPlugin_all.sol @@ -740,12 +740,12 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { uint constant MAX_INTERPROJECT_LEVEL = 20; // Events - event GiverAdded(uint64 indexed idGiver); - event GiverUpdated(uint64 indexed idGiver); - event DelegateAdded(uint64 indexed idDelegate); - event DelegateUpdated(uint64 indexed idDelegate); - event ProjectAdded(uint64 indexed idProject); - event ProjectUpdated(uint64 indexed idProject); + event GiverAdded(uint64 indexed idGiver, string url); + event GiverUpdated(uint64 indexed idGiver, string url); + event DelegateAdded(uint64 indexed idDelegate, string url); + event DelegateUpdated(uint64 indexed idDelegate, string url); + event ProjectAdded(uint64 indexed idProject, string url); + event ProjectUpdated(uint64 indexed idProject, string url); //////////////////// // Public functions @@ -801,7 +801,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - GiverAdded(idGiver); + GiverAdded(idGiver, url); } /// @notice Updates a Giver's info to change the address, name, url, or @@ -829,7 +829,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { giver.url = newUrl; giver.commitTime = newCommitTime; - GiverUpdated(idGiver); + GiverUpdated(idGiver, newUrl); } /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr @@ -865,7 +865,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - DelegateAdded(idDelegate); + DelegateAdded(idDelegate, url); } /// @notice Updates a Delegate's info to change the address, name, url, or @@ -895,7 +895,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { delegate.url = newUrl; delegate.commitTime = newCommitTime; - DelegateUpdated(idDelegate); + DelegateUpdated(idDelegate, newUrl); } /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr @@ -941,7 +941,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { url) ); - ProjectAdded(idProject); + ProjectAdded(idProject, url); } /// @notice Updates a Project's info to change the address, name, url, or @@ -972,7 +972,7 @@ contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { project.url = newUrl; project.commitTime = newCommitTime; - ProjectUpdated(idProject); + ProjectUpdated(idProject, newUrl); } ///////////////////////////// diff --git a/build/solcStandardInput.json b/build/solcStandardInput.json index a5ff14b..d8fefa9 100644 --- a/build/solcStandardInput.json +++ b/build/solcStandardInput.json @@ -1,19 +1,26 @@ { "language": "Solidity", "sources": { - "./contracts/EscapableApp.sol": { - "keccak256": "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a", + "./contracts/ILiquidPledgingPlugin.sol": { + "keccak256": "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b", "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/EscapableApp.sol" + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/ILiquidPledgingPlugin.sol" ], - "content": "pragma solidity ^0.4.18;\n/*\n Copyright 2016, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n// import \"./Owned.sol\";\nimport \"giveth-common-contracts/contracts/ERC20.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\n\n/// @dev `EscapableApp` is a base level contract; it creates an escape hatch\n/// function that can be called in an\n/// emergency that will allow designated addresses to send any ether or tokens\n/// held in the contract to an `escapeHatchDestination` as long as they were\n/// not blacklisted\ncontract EscapableApp is AragonApp {\n // warning whoever has this role can move all funds to the `escapeHatchDestination`\n bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256(\"ESCAPE_HATCH_CALLER_ROLE\");\n\n event EscapeHatchBlackistedToken(address token);\n event EscapeHatchCalled(address token, uint amount);\n\n address public escapeHatchDestination;\n mapping (address=>bool) private escapeBlacklist; // Token contract addresses\n uint[20] private storageOffset; // reserve 20 slots for future upgrades\n\n function EscapableApp(address _escapeHatchDestination) public {\n _init(_escapeHatchDestination);\n }\n\n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _escapeHatchDestination) onlyInit public {\n _init(_escapeHatchDestination);\n }\n\n /// @notice The `escapeHatch()` should only be called as a last resort if a\n /// security issue is uncovered or something unexpected happened\n /// @param _token to transfer, use 0x0 for ether\n function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) {\n require(escapeBlacklist[_token]==false);\n\n uint256 balance;\n\n /// @dev Logic for ether\n if (_token == 0x0) {\n balance = this.balance;\n escapeHatchDestination.transfer(balance);\n EscapeHatchCalled(_token, balance);\n return;\n }\n /// @dev Logic for tokens\n ERC20 token = ERC20(_token);\n balance = token.balanceOf(this);\n require(token.transfer(escapeHatchDestination, balance));\n EscapeHatchCalled(_token, balance);\n }\n\n /// @notice Checks to see if `_token` is in the blacklist of tokens\n /// @param _token the token address being queried\n /// @return False if `_token` is in the blacklist and can't be taken out of\n /// the contract via the `escapeHatch()`\n function isTokenEscapable(address _token) view external returns (bool) {\n return !escapeBlacklist[_token];\n }\n\n function _init(address _escapeHatchDestination) internal {\n initialized();\n require(_escapeHatchDestination != 0x0);\n\n escapeHatchDestination = _escapeHatchDestination;\n }\n\n /// @notice Creates the blacklist of tokens that are not able to be taken\n /// out of the contract; can only be done at the deployment, and the logic\n /// to add to the blacklist will be in the constructor of a child contract\n /// @param _token the token contract address that is to be blacklisted \n function _blacklistEscapeToken(address _token) internal {\n escapeBlacklist[_token] = true;\n EscapeHatchBlackistedToken(_token);\n }\n}\n" + "content": "pragma solidity ^0.4.11;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: Adrià Massanet , RJ Ewing, Griff\n Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n\n/// @dev `ILiquidPledgingPlugin` is the basic interface for any\n/// liquid pledging plugin\ncontract ILiquidPledgingPlugin {\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated before a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function beforeTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount ) public returns (uint maxAllowed);\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated after a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function afterTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount\n ) public;\n}\n" }, - "giveth-common-contracts/contracts/ERC20.sol": { - "keccak256": "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512", + "./contracts/LiquidPledgingACLHelpers.sol": { + "keccak256": "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62", "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/giveth-common-contracts/contracts/ERC20.sol" + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingACLHelpers.sol" ], - "content": "pragma solidity ^0.4.15;\n\n\n/**\n * @title ERC20\n * @dev A standard interface for tokens.\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n */\ncontract ERC20 {\n \n /// @dev Returns the total token supply\n function totalSupply() public constant returns (uint256 supply);\n\n /// @dev Returns the account balance of the account with address _owner\n function balanceOf(address _owner) public constant returns (uint256 balance);\n\n /// @dev Transfers _value number of tokens to address _to\n function transfer(address _to, uint256 _value) public returns (bool success);\n\n /// @dev Transfers _value number of tokens from address _from to address _to\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);\n\n /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount\n function approve(address _spender, uint256 _value) public returns (bool success);\n\n /// @dev Returns the amount which _spender is still allowed to withdraw from _owner\n function allowance(address _owner, address _spender) public constant returns (uint256 remaining);\n\n event Transfer(address indexed _from, address indexed _to, uint256 _value);\n event Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n}\n" + "content": "pragma solidity ^0.4.18;\n\ncontract LiquidPledgingACLHelpers {\n function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) {\n r = new uint[](4);\n r[0] = uint(a);\n r[1] = uint(b);\n r[2] = uint(c);\n r[3] = d;\n r[4] = uint(e);\n }\n\n function arr(bool a) internal pure returns (uint[] r) {\n r = new uint[](1);\n uint _a;\n assembly {\n _a := a // forced casting\n }\n r[0] = _a;\n }\n}" + }, + "./contracts/LiquidPledgingPlugins.sol": { + "keccak256": "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingPlugins.sol" + ], + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"./LiquidPledgingStorage.sol\";\nimport \"./LiquidPledgingACLHelpers.sol\";\n\ncontract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers {\n\n bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256(\"PLUGIN_MANAGER_ROLE\");\n\n function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external {\n pluginInstanceWhitelist[addr] = true;\n }\n\n function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public {\n pluginContractWhitelist[contractHash] = true;\n }\n\n function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) {\n for (uint8 i = 0; i < contractHashes.length; i++) {\n addValidPluginContract(contractHashes[i]);\n }\n }\n\n function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) {\n pluginContractWhitelist[contractHash] = false;\n }\n\n function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) {\n pluginInstanceWhitelist[addr] = false;\n }\n\n function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) {\n whitelistDisabled = !useWhitelist;\n }\n\n function isValidPlugin(address addr) public view returns(bool) {\n if (whitelistDisabled || addr == 0x0) {\n return true;\n }\n\n // first check pluginInstances\n if (pluginInstanceWhitelist[addr]) {\n return true;\n }\n\n // if the addr isn't a valid instance, check the contract code\n bytes32 contractHash = getCodeHash(addr);\n\n return pluginContractWhitelist[contractHash];\n }\n\n function getCodeHash(address addr) public view returns(bytes32) {\n bytes memory o_code;\n assembly {\n // retrieve the size of the code, this needs assembly\n let size := extcodesize(addr)\n // allocate output byte array - this could also be done without assembly\n // by using o_code = new bytes(size)\n o_code := mload(0x40)\n mstore(o_code, size) // store length in memory\n // actually retrieve the code, this needs assembly\n extcodecopy(addr, add(o_code, 0x20), 0, size)\n }\n return keccak256(o_code);\n }\n}" }, "@aragon/os/contracts/acl/IACL.sol": { "keccak256": "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede", @@ -85,20 +92,6 @@ ], "content": "pragma solidity ^0.4.18;\n\nimport \"./AppStorage.sol\";\nimport \"../common/Initializable.sol\";\nimport \"../evmscript/EVMScriptRunner.sol\";\nimport \"../acl/ACLSyntaxSugar.sol\";\n\n\ncontract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner {\n modifier auth(bytes32 _role) {\n require(canPerform(msg.sender, _role, new uint256[](0)));\n _;\n }\n\n modifier authP(bytes32 _role, uint256[] params) {\n require(canPerform(msg.sender, _role, params));\n _;\n }\n\n function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) {\n bytes memory how; // no need to init memory as it is never used\n if (params.length > 0) {\n uint256 byteLength = params.length * 32;\n assembly {\n how := params // forced casting\n mstore(how, byteLength)\n }\n }\n return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how);\n }\n}\n" }, - "./contracts/ILiquidPledgingPlugin.sol": { - "keccak256": "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/ILiquidPledgingPlugin.sol" - ], - "content": "pragma solidity ^0.4.11;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: Adrià Massanet , RJ Ewing, Griff\n Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n\n/// @dev `ILiquidPledgingPlugin` is the basic interface for any\n/// liquid pledging plugin\ncontract ILiquidPledgingPlugin {\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated before a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function beforeTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount ) public returns (uint maxAllowed);\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated after a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function afterTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount\n ) public;\n}\n" - }, - "./contracts/LiquidPledging.sol": { - "keccak256": "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledging.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledgingBase.sol\";\n\n/// @dev `LiquidPledging` allows for liquid pledging through the use of\n/// internal id structures and delegate chaining. All basic operations for\n/// handling liquid pledging are supplied as well as plugin features\n/// to allow for expanded functionality.\ncontract LiquidPledging is LiquidPledgingBase {\n\n function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public {\n }\n\n function addGiverAndDonate(uint64 idReceiver, address token, uint amount)\n public\n {\n addGiverAndDonate(idReceiver, msg.sender, token, amount);\n }\n\n function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount)\n public\n {\n require(donorAddress != 0);\n // default to a 3 day (259200 seconds) commitTime\n uint64 idGiver = addGiver(donorAddress, \"\", \"\", 259200, ILiquidPledgingPlugin(0));\n donate(idGiver, idReceiver, token, amount);\n }\n\n /// @notice This is how value enters the system and how pledges are created;\n /// the ether is sent to the vault, an pledge for the Giver is created (or\n /// found), the amount of ETH donated in wei is added to the `amount` in\n /// the Giver's Pledge, and an LP transfer is done to the idReceiver for\n /// the full amount\n /// @param idGiver The id of the Giver donating\n /// @param idReceiver The Admin receiving the donation; can be any Admin:\n /// the Giver themselves, another Giver, a Delegate or a Project\n function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount)\n public\n {\n require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer\n require(amount > 0);\n require(token != 0x0);\n\n PledgeAdmin storage sender = _findAdmin(idGiver);\n require(sender.adminType == PledgeAdminType.Giver);\n\n // TODO should this be done at the end of this function?\n // what re-entrancy issues are there if this is done here?\n // if done at the end of the function, will that affect plugins?\n require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault`\n\n uint64 idPledge = _findOrCreatePledge(\n idGiver,\n new uint64[](0), // Creates empty array for delegationChain\n 0,\n 0,\n 0,\n token,\n PledgeState.Pledged\n );\n\n Pledge storage pTo = _findPledge(idPledge);\n pTo.amount += amount;\n\n Transfer(0, idPledge, amount);\n\n _transfer(idGiver, idPledge, amount, idReceiver);\n }\n\n /// @notice Transfers amounts between pledges for internal accounting\n /// @param idSender Id of the Admin that is transferring the amount from\n /// Pledge to Pledge; this admin must have permissions to move the value\n /// @param idPledge Id of the pledge that's moving the value\n /// @param amount Quantity of ETH (in wei) that this pledge is transferring \n /// the authority to withdraw from the vault\n /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending\n /// to a Giver, a Delegate or a Project; a Delegate sending to another\n /// Delegate, or a Delegate pre-commiting it to a Project \n function transfer( \n uint64 idSender,\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) public\n {\n _checkAdminOwner(idSender);\n _transfer(idSender, idPledge, amount, idReceiver);\n }\n\n /// @notice Authorizes a payment be made from the `vault` can be used by the\n /// Giver to veto a pre-committed donation from a Delegate to an\n /// intendedProject\n /// @param idPledge Id of the pledge that is to be redeemed into ether\n /// @param amount Quantity of ether (in wei) to be authorized\n function withdraw(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge); // Updates pledge info \n\n Pledge storage p = _findPledge(idPledge);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paying\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n\n PledgeAdmin storage owner = _findAdmin(p.owner);\n vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount);\n }\n\n /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState\n /// from Paying to Paid\n /// @param idPledge Id of the pledge that is to be withdrawn\n /// @param amount Quantity of ether (in wei) to be withdrawn\n function confirmPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paid\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n }\n\n /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState\n /// from Paying back to Pledged\n /// @param idPledge Id of the pledge that's withdraw is to be canceled\n /// @param amount Quantity of ether (in wei) to be canceled\n function cancelPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n // When a payment is canceled, never is assigned to a project.\n uint64 idOldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n\n idOldPledge = normalizePledge(idOldPledge);\n\n _doTransfer(idPledge, idOldPledge, amount);\n }\n\n /// @notice Changes the `project.canceled` flag to `true`; cannot be undone\n /// @param idProject Id of the project that is to be canceled\n function cancelProject(uint64 idProject) public {\n PledgeAdmin storage project = _findAdmin(idProject);\n _checkAdminOwner(idProject);\n project.canceled = true;\n\n CancelProject(idProject);\n }\n\n /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that\n /// that sent it there in the first place, a Ctrl-z \n /// @param idPledge Id of the pledge that is to be canceled\n /// @param amount Quantity of ether (in wei) to be transfered to the \n /// `oldPledge`\n function cancelPledge(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge);\n\n Pledge storage p = _findPledge(idPledge);\n require(p.oldPledge != 0);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge);\n _doTransfer(idPledge, oldPledge, amount);\n }\n\n\n////////\n// Multi pledge methods\n////////\n\n // @dev This set of functions makes moving a lot of pledges around much more\n // efficient (saves gas) than calling these functions in series\n \n \n /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods\n uint constant D64 = 0x10000000000000000;\n\n /// @notice Transfers multiple amounts within multiple Pledges in an\n /// efficient single call \n /// @param idSender Id of the Admin that is transferring the amounts from\n /// all the Pledges; this admin must have permissions to move the value\n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or \n /// Project sending to a Giver, a Delegate or a Project; a Delegate sending\n /// to another Delegate, or a Delegate pre-commiting it to a Project \n function mTransfer(\n uint64 idSender,\n uint[] pledgesAmounts,\n uint64 idReceiver\n ) public \n {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n transfer(idSender, idPledge, amount, idReceiver);\n }\n }\n\n /// @notice Authorizes multiple amounts within multiple Pledges to be\n /// withdrawn from the `vault` in an efficient single call \n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n function mWithdraw(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n withdraw(idPledge, amount);\n }\n }\n\n /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mConfirmPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n confirmPayment(idPledge, amount);\n }\n }\n\n /// @notice `mCancelPayment` allows for multiple pledges to be canceled\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mCancelPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n cancelPayment(idPledge, amount);\n }\n }\n\n /// @notice `mNormalizePledge` allows for multiple pledges to be\n /// normalized efficiently\n /// @param pledges An array of pledge IDs\n function mNormalizePledge(uint64[] pledges) public {\n for (uint i = 0; i < pledges.length; i++ ) {\n normalizePledge(pledges[i]);\n }\n }\n}\n" - }, "./contracts/LiquidPledgingStorage.sol": { "keccak256": "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08", "urls": [ @@ -106,26 +99,19 @@ ], "content": "pragma solidity ^0.4.18;\n\nimport \"./ILiquidPledgingPlugin.sol\";\n\n/// @dev This is an interface for `LPVault` which serves as a secure storage for\n/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes\n/// payments can Pledges be converted for ETH\ninterface ILPVault {\n function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public;\n}\n\n/// This contract contains all state variables used in LiquidPledging contracts\n/// This is done to have everything in 1 location, b/c state variable layout\n/// is MUST have be the same when performing an upgrade.\ncontract LiquidPledgingStorage {\n enum PledgeAdminType { Giver, Delegate, Project }\n enum PledgeState { Pledged, Paying, Paid }\n\n /// @dev This struct defines the details of a `PledgeAdmin` which are \n /// commonly referenced by their index in the `admins` array\n /// and can own pledges and act as delegates\n struct PledgeAdmin { \n PledgeAdminType adminType; // Giver, Delegate or Project\n address addr; // Account or contract address for admin\n uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto\n uint64 parentProject; // Only for projects\n bool canceled; //Always false except for canceled projects\n\n /// @dev if the plugin is 0x0 then nothing happens, if its an address\n // than that smart contract is called when appropriate\n ILiquidPledgingPlugin plugin; \n string name;\n string url; // Can be IPFS hash\n }\n\n struct Pledge {\n uint amount;\n uint64[] delegationChain; // List of delegates in order of authority\n uint64 owner; // PledgeAdmin\n uint64 intendedProject; // Used when delegates are sending to projects\n uint64 commitTime; // When the intendedProject will become the owner\n uint64 oldPledge; // Points to the id that this Pledge was derived from\n address token;\n PledgeState pledgeState; // Pledged, Paying, Paid\n }\n\n PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin\n Pledge[] pledges;\n /// @dev this mapping allows you to search for a specific pledge's \n /// index number by the hash of that pledge\n mapping (bytes32 => uint64) hPledge2idx;\n\n // this whitelist is for non-proxied plugins\n mapping (bytes32 => bool) pluginContractWhitelist;\n // this whitelist is for proxied plugins\n mapping (address => bool) pluginInstanceWhitelist;\n bool public whitelistDisabled = false;\n\n ILPVault public vault;\n\n // reserve 50 slots for future upgrades. I'm not sure if this is necessary \n // but b/c of multiple inheritance used in lp, better safe then sorry.\n // especially since it is free\n uint[50] private storageOffset;\n}" }, - "./contracts/LiquidPledgingACLHelpers.sol": { - "keccak256": "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62", + "./contracts/LiquidPledgingMock.sol": { + "keccak256": "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd", "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingACLHelpers.sol" + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingMock.sol" ], - "content": "pragma solidity ^0.4.18;\n\ncontract LiquidPledgingACLHelpers {\n function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) {\n r = new uint[](4);\n r[0] = uint(a);\n r[1] = uint(b);\n r[2] = uint(c);\n r[3] = d;\n r[4] = uint(e);\n }\n\n function arr(bool a) internal pure returns (uint[] r) {\n r = new uint[](1);\n uint _a;\n assembly {\n _a := a // forced casting\n }\n r[0] = _a;\n }\n}" - }, - "./contracts/LiquidPledgingPlugins.sol": { - "keccak256": "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingPlugins.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"./LiquidPledgingStorage.sol\";\nimport \"./LiquidPledgingACLHelpers.sol\";\n\ncontract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers {\n\n bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256(\"PLUGIN_MANAGER_ROLE\");\n\n function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external {\n pluginInstanceWhitelist[addr] = true;\n }\n\n function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public {\n pluginContractWhitelist[contractHash] = true;\n }\n\n function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) {\n for (uint8 i = 0; i < contractHashes.length; i++) {\n addValidPluginContract(contractHashes[i]);\n }\n }\n\n function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) {\n pluginContractWhitelist[contractHash] = false;\n }\n\n function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) {\n pluginInstanceWhitelist[addr] = false;\n }\n\n function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) {\n whitelistDisabled = !useWhitelist;\n }\n\n function isValidPlugin(address addr) public view returns(bool) {\n if (whitelistDisabled || addr == 0x0) {\n return true;\n }\n\n // first check pluginInstances\n if (pluginInstanceWhitelist[addr]) {\n return true;\n }\n\n // if the addr isn't a valid instance, check the contract code\n bytes32 contractHash = getCodeHash(addr);\n\n return pluginContractWhitelist[contractHash];\n }\n\n function getCodeHash(address addr) public view returns(bytes32) {\n bytes memory o_code;\n assembly {\n // retrieve the size of the code, this needs assembly\n let size := extcodesize(addr)\n // allocate output byte array - this could also be done without assembly\n // by using o_code = new bytes(size)\n o_code := mload(0x40)\n mstore(o_code, size) // store length in memory\n // actually retrieve the code, this needs assembly\n extcodecopy(addr, add(o_code, 0x20), 0, size)\n }\n return keccak256(o_code);\n }\n}" + "content": "pragma solidity ^0.4.11;\n/*\n Copyright 2017, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledging.sol\";\n// hack so that solcpiler will generate a contracts.Kernel object\nimport \"@aragon/os/contracts/kernel/Kernel.sol\";\n\n/// @dev `LiquidPledgingMock` allows for mocking up\n/// a `LiquidPledging` contract with the added ability\n/// to manipulate the block time for testing purposes.\ncontract LiquidPledgingMock is LiquidPledging {\n\n uint public mock_time;\n\n function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public {\n }\n\n /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging`\n /// instance and sets the mocked time to the current blocktime.\n function initialize(address _vault, address _escapeHatchDestination) onlyInit public {\n super.initialize(_vault, _escapeHatchDestination);\n mock_time = now;\n }\n\n /// @dev `getTime` is a basic getter function for\n /// the mock_time parameter\n function _getTime() internal view returns (uint) {\n return mock_time;\n }\n\n /// @dev `setMockedTime` is a basic setter function for\n /// the mock_time parameter\n /// @param _t This is the value to which the mocked time\n /// will be set.\n function setMockedTime(uint _t) public {\n mock_time = _t;\n }\n}\n" }, "./contracts/PledgeAdmins.sol": { - "keccak256": "0xa1edcb61290bba6118e28e354ec28a8292993377725021bcbf0d749d5cb63a14", + "keccak256": "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104", "urls": [ "file:///Users/rjewing/code/giveth/liquidpledging/contracts/PledgeAdmins.sol" ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\nimport \"./LiquidPledgingPlugins.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\ncontract PledgeAdmins is AragonApp, LiquidPledgingPlugins {\n\n // Limits inserted to prevent large loops that could prevent canceling\n uint constant MAX_SUBPROJECT_LEVEL = 20;\n uint constant MAX_INTERPROJECT_LEVEL = 20;\n\n // Events\n event GiverAdded(uint64 indexed idGiver);\n event GiverUpdated(uint64 indexed idGiver);\n event DelegateAdded(uint64 indexed idDelegate);\n event DelegateUpdated(uint64 indexed idDelegate);\n event ProjectAdded(uint64 indexed idProject);\n event ProjectUpdated(uint64 indexed idProject);\n\n////////////////////\n// Public functions\n////////////////////\n\n /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address\n /// @param name The name used to identify the Giver\n /// @param url The link to the Giver's profile often an IPFS hash\n /// @param commitTime The length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n /// @param plugin This is Giver's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idGiver The id number used to reference this Admin\n function addGiver(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idGiver)\n {\n return addGiver(\n msg.sender,\n name,\n url,\n commitTime,\n plugin\n );\n }\n\n // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy?\n function addGiver(\n address addr,\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) public returns (uint64 idGiver)\n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idGiver = uint64(admins.length);\n\n // Save the fields\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Giver,\n addr,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n GiverAdded(idGiver);\n }\n\n /// @notice Updates a Giver's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Giver\n /// @param idGiver This is the Admin id number used to specify the Giver\n /// @param newAddr The new address that represents this Giver\n /// @param newName The new name used to identify the Giver\n /// @param newUrl The new link to the Giver's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n function updateGiver(\n uint64 idGiver,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage giver = _findAdmin(idGiver);\n require(msg.sender == giver.addr);\n require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver\n giver.addr = newAddr;\n giver.name = newName;\n giver.url = newUrl;\n giver.commitTime = newCommitTime;\n\n GiverUpdated(idGiver);\n }\n\n /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Delegate\n /// @param url The link to the Delegate's profile often an IPFS hash\n /// @param commitTime Sets the length of time in seconds that this delegate\n /// can be vetoed. Whenever this delegate is in a delegate chain the time\n /// allowed to veto any event must be greater than or equal to this time.\n /// @param plugin This is Delegate's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idxDelegate The id number used to reference this Delegate within\n /// the PLEDGE_ADMIN array\n function addDelegate(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idDelegate) \n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idDelegate = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Delegate,\n msg.sender,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n DelegateAdded(idDelegate);\n }\n\n /// @notice Updates a Delegate's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Delegate\n /// @param idDelegate The Admin id number used to specify the Delegate\n /// @param newAddr The new address that represents this Delegate\n /// @param newName The new name used to identify the Delegate\n /// @param newUrl The new link to the Delegate's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds that this\n /// delegate can be vetoed. Whenever this delegate is in a delegate chain\n /// the time allowed to veto any event must be greater than or equal to\n /// this time.\n function updateDelegate(\n uint64 idDelegate,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage delegate = _findAdmin(idDelegate);\n require(msg.sender == delegate.addr);\n require(delegate.adminType == PledgeAdminType.Delegate);\n delegate.addr = newAddr;\n delegate.name = newName;\n delegate.url = newUrl;\n delegate.commitTime = newCommitTime;\n\n DelegateUpdated(idDelegate);\n }\n\n /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Project\n /// @param url The link to the Project's profile often an IPFS hash\n /// @param projectAdmin The address for the trusted project manager\n /// @param parentProject The Admin id number for the parent project or 0 if\n /// there is no parentProject\n /// @param commitTime Sets the length of time in seconds the Project has to\n /// veto when the Project delegates to another Delegate and they pledge\n /// those funds to a project\n /// @param plugin This is Project's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idProject The id number used to reference this Admin\n function addProject(\n string name,\n string url,\n address projectAdmin,\n uint64 parentProject,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idProject) \n {\n require(isValidPlugin(plugin));\n\n if (parentProject != 0) {\n PledgeAdmin storage a = _findAdmin(parentProject);\n // getProjectLevel will check that parentProject has a `Project` adminType\n require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL);\n }\n\n idProject = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Project,\n projectAdmin,\n commitTime,\n parentProject,\n false,\n plugin,\n name,\n url)\n );\n\n ProjectAdded(idProject);\n }\n\n /// @notice Updates a Project's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin or a parentProject,\n /// and it must be called by the current address of the Project\n /// @param idProject The Admin id number used to specify the Project\n /// @param newAddr The new address that represents this Project\n /// @param newName The new name used to identify the Project\n /// @param newUrl The new link to the Project's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Project has\n /// to veto when the Project delegates to a Delegate and they pledge those\n /// funds to a project\n function updateProject(\n uint64 idProject,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage project = _findAdmin(idProject);\n\n require(msg.sender == project.addr);\n require(project.adminType == PledgeAdminType.Project);\n\n project.addr = newAddr;\n project.name = newName;\n project.url = newUrl;\n project.commitTime = newCommitTime;\n\n ProjectUpdated(idProject);\n }\n\n/////////////////////////////\n// Public constant functions\n/////////////////////////////\n\n /// @notice A constant getter used to check how many total Admins exist\n /// @return The total number of admins (Givers, Delegates and Projects) .\n function numberOfPledgeAdmins() external view returns(uint) {\n return admins.length - 1;\n }\n\n /// @notice A constant getter to check the details of a specified Admin\n /// @return addr Account or contract address for admin\n /// @return name Name of the pledgeAdmin\n /// @return url The link to the Project's profile often an IPFS hash\n /// @return commitTime The length of time in seconds the Admin has to veto\n /// when the Admin delegates to a Delegate and that Delegate pledges those\n /// funds to a project\n /// @return parentProject The Admin id number for the parent project or 0\n /// if there is no parentProject\n /// @return canceled 0 for Delegates & Givers, true if a Project has been\n /// canceled\n /// @return plugin This is Project's liquidPledging plugin allowing for\n /// extended functionality\n function getPledgeAdmin(uint64 idAdmin) external view returns (\n PledgeAdminType adminType,\n address addr,\n string name,\n string url,\n uint64 commitTime,\n uint64 parentProject,\n bool canceled,\n address plugin\n ) {\n PledgeAdmin storage a = _findAdmin(idAdmin);\n adminType = a.adminType;\n addr = a.addr;\n name = a.name;\n url = a.url;\n commitTime = a.commitTime;\n parentProject = a.parentProject;\n canceled = a.canceled;\n plugin = address(a.plugin);\n }\n\n /// @notice A getter to find if a specified Project has been canceled\n /// @param projectId The Admin id number used to specify the Project\n /// @return True if the Project has been canceled\n function isProjectCanceled(uint64 projectId)\n public view returns (bool)\n {\n PledgeAdmin storage a = _findAdmin(projectId);\n\n if (a.adminType == PledgeAdminType.Giver) {\n return false;\n }\n\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.canceled) {\n return true;\n }\n if (a.parentProject == 0) {\n return false;\n }\n\n return isProjectCanceled(a.parentProject);\n }\n\n///////////////////\n// Internal methods\n///////////////////\n\n /// @notice A getter to look up a Admin's details\n /// @param idAdmin The id for the Admin to lookup\n /// @return The PledgeAdmin struct for the specified Admin\n function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) {\n require(idAdmin < admins.length);\n return admins[idAdmin];\n }\n\n /// @notice Find the level of authority a specific Project has\n /// using a recursive loop\n /// @param a The project admin being queried\n /// @return The level of authority a specific Project has\n function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) {\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.parentProject == 0) {\n return(1);\n }\n\n PledgeAdmin storage parent = _findAdmin(a.parentProject);\n return _getProjectLevel(parent) + 1;\n }\n}" + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\nimport \"./LiquidPledgingPlugins.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\ncontract PledgeAdmins is AragonApp, LiquidPledgingPlugins {\n\n // Limits inserted to prevent large loops that could prevent canceling\n uint constant MAX_SUBPROJECT_LEVEL = 20;\n uint constant MAX_INTERPROJECT_LEVEL = 20;\n\n // Events\n event GiverAdded(uint64 indexed idGiver, string url);\n event GiverUpdated(uint64 indexed idGiver, string url);\n event DelegateAdded(uint64 indexed idDelegate, string url);\n event DelegateUpdated(uint64 indexed idDelegate, string url);\n event ProjectAdded(uint64 indexed idProject, string url);\n event ProjectUpdated(uint64 indexed idProject, string url);\n\n////////////////////\n// Public functions\n////////////////////\n\n /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address\n /// @param name The name used to identify the Giver\n /// @param url The link to the Giver's profile often an IPFS hash\n /// @param commitTime The length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n /// @param plugin This is Giver's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idGiver The id number used to reference this Admin\n function addGiver(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idGiver)\n {\n return addGiver(\n msg.sender,\n name,\n url,\n commitTime,\n plugin\n );\n }\n\n // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy?\n function addGiver(\n address addr,\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) public returns (uint64 idGiver)\n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idGiver = uint64(admins.length);\n\n // Save the fields\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Giver,\n addr,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n GiverAdded(idGiver, url);\n }\n\n /// @notice Updates a Giver's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Giver\n /// @param idGiver This is the Admin id number used to specify the Giver\n /// @param newAddr The new address that represents this Giver\n /// @param newName The new name used to identify the Giver\n /// @param newUrl The new link to the Giver's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n function updateGiver(\n uint64 idGiver,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage giver = _findAdmin(idGiver);\n require(msg.sender == giver.addr);\n require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver\n giver.addr = newAddr;\n giver.name = newName;\n giver.url = newUrl;\n giver.commitTime = newCommitTime;\n\n GiverUpdated(idGiver, newUrl);\n }\n\n /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Delegate\n /// @param url The link to the Delegate's profile often an IPFS hash\n /// @param commitTime Sets the length of time in seconds that this delegate\n /// can be vetoed. Whenever this delegate is in a delegate chain the time\n /// allowed to veto any event must be greater than or equal to this time.\n /// @param plugin This is Delegate's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idxDelegate The id number used to reference this Delegate within\n /// the PLEDGE_ADMIN array\n function addDelegate(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idDelegate) \n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idDelegate = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Delegate,\n msg.sender,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n DelegateAdded(idDelegate, url);\n }\n\n /// @notice Updates a Delegate's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Delegate\n /// @param idDelegate The Admin id number used to specify the Delegate\n /// @param newAddr The new address that represents this Delegate\n /// @param newName The new name used to identify the Delegate\n /// @param newUrl The new link to the Delegate's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds that this\n /// delegate can be vetoed. Whenever this delegate is in a delegate chain\n /// the time allowed to veto any event must be greater than or equal to\n /// this time.\n function updateDelegate(\n uint64 idDelegate,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage delegate = _findAdmin(idDelegate);\n require(msg.sender == delegate.addr);\n require(delegate.adminType == PledgeAdminType.Delegate);\n delegate.addr = newAddr;\n delegate.name = newName;\n delegate.url = newUrl;\n delegate.commitTime = newCommitTime;\n\n DelegateUpdated(idDelegate, newUrl);\n }\n\n /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Project\n /// @param url The link to the Project's profile often an IPFS hash\n /// @param projectAdmin The address for the trusted project manager\n /// @param parentProject The Admin id number for the parent project or 0 if\n /// there is no parentProject\n /// @param commitTime Sets the length of time in seconds the Project has to\n /// veto when the Project delegates to another Delegate and they pledge\n /// those funds to a project\n /// @param plugin This is Project's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idProject The id number used to reference this Admin\n function addProject(\n string name,\n string url,\n address projectAdmin,\n uint64 parentProject,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idProject) \n {\n require(isValidPlugin(plugin));\n\n if (parentProject != 0) {\n PledgeAdmin storage a = _findAdmin(parentProject);\n // getProjectLevel will check that parentProject has a `Project` adminType\n require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL);\n }\n\n idProject = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Project,\n projectAdmin,\n commitTime,\n parentProject,\n false,\n plugin,\n name,\n url)\n );\n\n ProjectAdded(idProject, url);\n }\n\n /// @notice Updates a Project's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin or a parentProject,\n /// and it must be called by the current address of the Project\n /// @param idProject The Admin id number used to specify the Project\n /// @param newAddr The new address that represents this Project\n /// @param newName The new name used to identify the Project\n /// @param newUrl The new link to the Project's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Project has\n /// to veto when the Project delegates to a Delegate and they pledge those\n /// funds to a project\n function updateProject(\n uint64 idProject,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage project = _findAdmin(idProject);\n\n require(msg.sender == project.addr);\n require(project.adminType == PledgeAdminType.Project);\n\n project.addr = newAddr;\n project.name = newName;\n project.url = newUrl;\n project.commitTime = newCommitTime;\n\n ProjectUpdated(idProject, newUrl);\n }\n\n/////////////////////////////\n// Public constant functions\n/////////////////////////////\n\n /// @notice A constant getter used to check how many total Admins exist\n /// @return The total number of admins (Givers, Delegates and Projects) .\n function numberOfPledgeAdmins() external view returns(uint) {\n return admins.length - 1;\n }\n\n /// @notice A constant getter to check the details of a specified Admin\n /// @return addr Account or contract address for admin\n /// @return name Name of the pledgeAdmin\n /// @return url The link to the Project's profile often an IPFS hash\n /// @return commitTime The length of time in seconds the Admin has to veto\n /// when the Admin delegates to a Delegate and that Delegate pledges those\n /// funds to a project\n /// @return parentProject The Admin id number for the parent project or 0\n /// if there is no parentProject\n /// @return canceled 0 for Delegates & Givers, true if a Project has been\n /// canceled\n /// @return plugin This is Project's liquidPledging plugin allowing for\n /// extended functionality\n function getPledgeAdmin(uint64 idAdmin) external view returns (\n PledgeAdminType adminType,\n address addr,\n string name,\n string url,\n uint64 commitTime,\n uint64 parentProject,\n bool canceled,\n address plugin\n ) {\n PledgeAdmin storage a = _findAdmin(idAdmin);\n adminType = a.adminType;\n addr = a.addr;\n name = a.name;\n url = a.url;\n commitTime = a.commitTime;\n parentProject = a.parentProject;\n canceled = a.canceled;\n plugin = address(a.plugin);\n }\n\n /// @notice A getter to find if a specified Project has been canceled\n /// @param projectId The Admin id number used to specify the Project\n /// @return True if the Project has been canceled\n function isProjectCanceled(uint64 projectId)\n public view returns (bool)\n {\n PledgeAdmin storage a = _findAdmin(projectId);\n\n if (a.adminType == PledgeAdminType.Giver) {\n return false;\n }\n\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.canceled) {\n return true;\n }\n if (a.parentProject == 0) {\n return false;\n }\n\n return isProjectCanceled(a.parentProject);\n }\n\n///////////////////\n// Internal methods\n///////////////////\n\n /// @notice A getter to look up a Admin's details\n /// @param idAdmin The id for the Admin to lookup\n /// @return The PledgeAdmin struct for the specified Admin\n function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) {\n require(idAdmin < admins.length);\n return admins[idAdmin];\n }\n\n /// @notice Find the level of authority a specific Project has\n /// using a recursive loop\n /// @param a The project admin being queried\n /// @return The level of authority a specific Project has\n function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) {\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.parentProject == 0) {\n return(1);\n }\n\n PledgeAdmin storage parent = _findAdmin(a.parentProject);\n return _getProjectLevel(parent) + 1;\n }\n}" }, "./contracts/Pledges.sol": { "keccak256": "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797", @@ -134,6 +120,20 @@ ], "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"./LiquidPledgingStorage.sol\";\n\ncontract Pledges is AragonApp, LiquidPledgingStorage {\n\n // Limits inserted to prevent large loops that could prevent canceling\n uint constant MAX_DELEGATES = 10;\n\n // a constant for when a delegate is requested that is not in the system\n uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF;\n\n/////////////////////////////\n// Public constant functions\n////////////////////////////\n\n /// @notice A constant getter that returns the total number of pledges\n /// @return The total number of Pledges in the system\n function numberOfPledges() external view returns (uint) {\n return pledges.length - 1;\n }\n\n /// @notice A getter that returns the details of the specified pledge\n /// @param idPledge the id number of the pledge being queried\n /// @return the amount, owner, the number of delegates (but not the actual\n /// delegates, the intendedProject (if any), the current commit time and\n /// the previous pledge this pledge was derived from\n function getPledge(uint64 idPledge) external view returns(\n uint amount,\n uint64 owner,\n uint64 nDelegates,\n uint64 intendedProject,\n uint64 commitTime,\n uint64 oldPledge,\n address token,\n PledgeState pledgeState\n ) {\n Pledge memory p = _findPledge(idPledge);\n amount = p.amount;\n owner = p.owner;\n nDelegates = uint64(p.delegationChain.length);\n intendedProject = p.intendedProject;\n commitTime = p.commitTime;\n oldPledge = p.oldPledge;\n token = p.token;\n pledgeState = p.pledgeState;\n }\n\n\n////////////////////\n// Internal methods\n////////////////////\n\n /// @notice This creates a Pledge with an initial amount of 0 if one is not\n /// created already; otherwise it finds the pledge with the specified\n /// attributes; all pledges technically exist, if the pledge hasn't been\n /// created in this system yet it simply isn't in the hash array\n /// hPledge2idx[] yet\n /// @param owner The owner of the pledge being looked up\n /// @param delegationChain The list of delegates in order of authority\n /// @param intendedProject The project this pledge will Fund after the\n /// commitTime has passed\n /// @param commitTime The length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n /// @param oldPledge This value is used to store the pledge the current\n /// pledge was came from, and in the case a Project is canceled, the Pledge\n /// will revert back to it's previous state\n /// @param state The pledge state: Pledged, Paying, or state\n /// @return The hPledge2idx index number\n function _findOrCreatePledge(\n uint64 owner,\n uint64[] delegationChain,\n uint64 intendedProject,\n uint64 commitTime,\n uint64 oldPledge,\n address token,\n PledgeState state\n ) internal returns (uint64)\n {\n bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state);\n uint64 id = hPledge2idx[hPledge];\n if (id > 0) {\n return id;\n }\n\n id = uint64(pledges.length);\n hPledge2idx[hPledge] = id;\n pledges.push(\n Pledge(\n 0,\n delegationChain,\n owner,\n intendedProject,\n commitTime,\n oldPledge,\n token,\n state\n )\n );\n return id;\n }\n\n /// @param idPledge the id of the pledge to load from storage\n /// @return The Pledge\n function _findPledge(uint64 idPledge) internal view returns(Pledge storage) {\n require(idPledge < pledges.length);\n return pledges[idPledge];\n }\n\n /// @notice A getter that searches the delegationChain for the level of\n /// authority a specific delegate has within a Pledge\n /// @param p The Pledge that will be searched\n /// @param idDelegate The specified delegate that's searched for\n /// @return If the delegate chain contains the delegate with the\n /// `admins` array index `idDelegate` this returns that delegates\n /// corresponding index in the delegationChain. Otherwise it returns\n /// the NOTFOUND constant\n function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) {\n for (uint i = 0; i < p.delegationChain.length; i++) {\n if (p.delegationChain[i] == idDelegate) {\n return uint64(i);\n }\n }\n return NOTFOUND;\n }\n\n /// @notice A getter to find how many old \"parent\" pledges a specific Pledge\n /// had using a self-referential loop\n /// @param p The Pledge being queried\n /// @return The number of old \"parent\" pledges a specific Pledge had\n function _getPledgeLevel(Pledge p) internal view returns(uint) {\n if (p.oldPledge == 0) {\n return 0;\n }\n Pledge storage oldP = _findPledge(p.oldPledge);\n return _getPledgeLevel(oldP) + 1; // a loop lookup\n }\n}\n" }, + "giveth-common-contracts/contracts/ERC20.sol": { + "keccak256": "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/giveth-common-contracts/contracts/ERC20.sol" + ], + "content": "pragma solidity ^0.4.15;\n\n\n/**\n * @title ERC20\n * @dev A standard interface for tokens.\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n */\ncontract ERC20 {\n \n /// @dev Returns the total token supply\n function totalSupply() public constant returns (uint256 supply);\n\n /// @dev Returns the account balance of the account with address _owner\n function balanceOf(address _owner) public constant returns (uint256 balance);\n\n /// @dev Transfers _value number of tokens to address _to\n function transfer(address _to, uint256 _value) public returns (bool success);\n\n /// @dev Transfers _value number of tokens from address _from to address _to\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);\n\n /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount\n function approve(address _spender, uint256 _value) public returns (bool success);\n\n /// @dev Returns the amount which _spender is still allowed to withdraw from _owner\n function allowance(address _owner, address _spender) public constant returns (uint256 remaining);\n\n event Transfer(address indexed _from, address indexed _to, uint256 _value);\n event Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n}\n" + }, + "./contracts/EscapableApp.sol": { + "keccak256": "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/EscapableApp.sol" + ], + "content": "pragma solidity ^0.4.18;\n/*\n Copyright 2016, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n// import \"./Owned.sol\";\nimport \"giveth-common-contracts/contracts/ERC20.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\n\n/// @dev `EscapableApp` is a base level contract; it creates an escape hatch\n/// function that can be called in an\n/// emergency that will allow designated addresses to send any ether or tokens\n/// held in the contract to an `escapeHatchDestination` as long as they were\n/// not blacklisted\ncontract EscapableApp is AragonApp {\n // warning whoever has this role can move all funds to the `escapeHatchDestination`\n bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256(\"ESCAPE_HATCH_CALLER_ROLE\");\n\n event EscapeHatchBlackistedToken(address token);\n event EscapeHatchCalled(address token, uint amount);\n\n address public escapeHatchDestination;\n mapping (address=>bool) private escapeBlacklist; // Token contract addresses\n uint[20] private storageOffset; // reserve 20 slots for future upgrades\n\n function EscapableApp(address _escapeHatchDestination) public {\n _init(_escapeHatchDestination);\n }\n\n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _escapeHatchDestination) onlyInit public {\n _init(_escapeHatchDestination);\n }\n\n /// @notice The `escapeHatch()` should only be called as a last resort if a\n /// security issue is uncovered or something unexpected happened\n /// @param _token to transfer, use 0x0 for ether\n function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) {\n require(escapeBlacklist[_token]==false);\n\n uint256 balance;\n\n /// @dev Logic for ether\n if (_token == 0x0) {\n balance = this.balance;\n escapeHatchDestination.transfer(balance);\n EscapeHatchCalled(_token, balance);\n return;\n }\n /// @dev Logic for tokens\n ERC20 token = ERC20(_token);\n balance = token.balanceOf(this);\n require(token.transfer(escapeHatchDestination, balance));\n EscapeHatchCalled(_token, balance);\n }\n\n /// @notice Checks to see if `_token` is in the blacklist of tokens\n /// @param _token the token address being queried\n /// @return False if `_token` is in the blacklist and can't be taken out of\n /// the contract via the `escapeHatch()`\n function isTokenEscapable(address _token) view external returns (bool) {\n return !escapeBlacklist[_token];\n }\n\n function _init(address _escapeHatchDestination) internal {\n initialized();\n require(_escapeHatchDestination != 0x0);\n\n escapeHatchDestination = _escapeHatchDestination;\n }\n\n /// @notice Creates the blacklist of tokens that are not able to be taken\n /// out of the contract; can only be done at the deployment, and the logic\n /// to add to the blacklist will be in the constructor of a child contract\n /// @param _token the token contract address that is to be blacklisted \n function _blacklistEscapeToken(address _token) internal {\n escapeBlacklist[_token] = true;\n EscapeHatchBlackistedToken(_token);\n }\n}\n" + }, "./contracts/LiquidPledgingBase.sol": { "keccak256": "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5", "urls": [ @@ -141,12 +141,12 @@ ], "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: Adrià Massanet , RJ Ewing, Griff\n Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledgingStorage.sol\";\nimport \"./PledgeAdmins.sol\";\nimport \"./Pledges.sol\";\nimport \"./EscapableApp.sol\";\n\n/// @dev `LiquidPledgingBase` is the base level contract used to carry out\n/// liquidPledging's most basic functions, mostly handling and searching the\n/// data structures\ncontract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges {\n\n event Transfer(uint indexed from, uint indexed to, uint amount);\n event CancelProject(uint indexed idProject);\n\n/////////////\n// Modifiers\n/////////////\n\n /// @dev The `vault`is the only addresses that can call a function with this\n /// modifier\n modifier onlyVault() {\n require(msg.sender == address(vault));\n _;\n }\n\n///////////////\n// Constructor\n///////////////\n\n function initialize(address _escapeHatchDestination) onlyInit public {\n require(false); // overload the EscapableApp\n _escapeHatchDestination;\n }\n\n /// @param _vault The vault where the ETH backing the pledges is stored\n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _vault, address _escapeHatchDestination) onlyInit public {\n super.initialize(_escapeHatchDestination);\n require(_vault != 0x0);\n\n vault = ILPVault(_vault);\n\n admins.length = 1; // we reserve the 0 admin\n pledges.length = 1; // we reserve the 0 pledge\n }\n\n\n/////////////////////////////\n// Public constant functions\n/////////////////////////////\n\n /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index\n /// @param idPledge The id number representing the pledge being queried\n /// @param idxDelegate The index number for the delegate in this Pledge \n function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns(\n uint64 idDelegate,\n address addr,\n string name\n ) {\n Pledge storage p = _findPledge(idPledge);\n idDelegate = p.delegationChain[idxDelegate - 1];\n PledgeAdmin storage delegate = _findAdmin(idDelegate);\n addr = delegate.addr;\n name = delegate.name;\n }\n\n///////////////////\n// Public functions\n///////////////////\n\n /// @notice Only affects pledges with the Pledged PledgeState for 2 things:\n /// #1: Checks if the pledge should be committed. This means that\n /// if the pledge has an intendedProject and it is past the\n /// commitTime, it changes the owner to be the proposed project\n /// (The UI will have to read the commit time and manually do what\n /// this function does to the pledge for the end user\n /// at the expiration of the commitTime)\n ///\n /// #2: Checks to make sure that if there has been a cancellation in the\n /// chain of projects, the pledge's owner has been changed\n /// appropriately.\n ///\n /// This function can be called by anybody at anytime on any pledge.\n /// In general it can be called to force the calls of the affected \n /// plugins, which also need to be predicted by the UI\n /// @param idPledge This is the id of the pledge that will be normalized\n /// @return The normalized Pledge!\n function normalizePledge(uint64 idPledge) public returns(uint64) {\n Pledge storage p = _findPledge(idPledge);\n\n // Check to make sure this pledge hasn't already been used \n // or is in the process of being used\n if (p.pledgeState != PledgeState.Pledged) {\n return idPledge;\n }\n\n // First send to a project if it's proposed and committed\n if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) {\n uint64 oldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n uint64 toPledge = _findOrCreatePledge(\n p.intendedProject,\n new uint64[](0),\n 0,\n 0,\n oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, p.amount);\n idPledge = toPledge;\n p = _findPledge(idPledge);\n }\n\n toPledge = _getOldestPledgeNotCanceled(idPledge);\n if (toPledge != idPledge) {\n _doTransfer(idPledge, toPledge, p.amount);\n }\n\n return toPledge;\n }\n\n////////////////////\n// Internal methods\n////////////////////\n\n /// @notice A check to see if the msg.sender is the owner or the\n /// plugin contract for a specific Admin\n /// @param idAdmin The id of the admin being checked\n function _checkAdminOwner(uint64 idAdmin) internal view {\n PledgeAdmin storage a = _findAdmin(idAdmin);\n require(msg.sender == address(a.plugin) || msg.sender == a.addr);\n }\n\n function _transfer( \n uint64 idSender,\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal\n {\n require(idReceiver > 0); // prevent burning value\n idPledge = normalizePledge(idPledge);\n\n Pledge storage p = _findPledge(idPledge);\n PledgeAdmin storage receiver = _findAdmin(idReceiver);\n\n require(p.pledgeState == PledgeState.Pledged);\n\n // If the sender is the owner of the Pledge\n if (p.owner == idSender) {\n\n if (receiver.adminType == PledgeAdminType.Giver) {\n _transferOwnershipToGiver(idPledge, amount, idReceiver);\n return;\n } else if (receiver.adminType == PledgeAdminType.Project) {\n _transferOwnershipToProject(idPledge, amount, idReceiver);\n return;\n } else if (receiver.adminType == PledgeAdminType.Delegate) {\n\n uint recieverDIdx = _getDelegateIdx(p, idReceiver);\n if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) {\n // if there is an intendedProject and the receiver is in the delegationChain,\n // then we want to preserve the delegationChain as this is a veto of the\n // intendedProject by the owner\n\n if (recieverDIdx == p.delegationChain.length - 1) {\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged);\n _doTransfer(idPledge, toPledge, amount);\n return;\n }\n\n _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1);\n return;\n }\n // owner is not vetoing an intendedProject and is transferring the pledge to a delegate,\n // so we want to reset the delegationChain\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n }\n\n // This should never be reached as the receiver.adminType\n // should always be either a Giver, Project, or Delegate\n assert(false);\n }\n\n // If the sender is a Delegate\n uint senderDIdx = _getDelegateIdx(p, idSender);\n if (senderDIdx != NOTFOUND) {\n\n // And the receiver is another Giver\n if (receiver.adminType == PledgeAdminType.Giver) {\n // Only transfer to the Giver who owns the pledge\n assert(p.owner == idReceiver);\n _undelegate(idPledge, amount, p.delegationChain.length);\n return;\n }\n\n // And the receiver is another Delegate\n if (receiver.adminType == PledgeAdminType.Delegate) {\n uint receiverDIdx = _getDelegateIdx(p, idReceiver);\n\n // And not in the delegationChain\n if (receiverDIdx == NOTFOUND) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n\n // And part of the delegationChain and is after the sender, then\n // all of the other delegates after the sender are removed and\n // the receiver is appended at the end of the delegationChain\n } else if (receiverDIdx > senderDIdx) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n }\n\n // And is already part of the delegate chain but is before the\n // sender, then the sender and all of the other delegates after\n // the RECEIVER are removed from the delegationChain\n //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed?\n _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - receiverDIdx - 1\n );\n return;\n }\n\n // And the receiver is a Project, all the delegates after the sender\n // are removed and the amount is pre-committed to the project\n if (receiver.adminType == PledgeAdminType.Project) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _proposeAssignProject(idPledge, amount, idReceiver);\n return;\n }\n }\n assert(false); // When the sender is not an owner or a delegate\n }\n\n /// @notice `transferOwnershipToProject` allows for the transfer of\n /// ownership to the project, but it can also be called by a project\n /// to un-delegate everyone by setting one's own id for the idReceiver\n /// @param idPledge the id of the pledge to be transfered.\n /// @param amount Quantity of value that's being transfered\n /// @param idReceiver The new owner of the project (or self to un-delegate)\n function _transferOwnershipToProject(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n // Ensure that the pledge is not already at max pledge depth\n // and the project has not been canceled\n require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL);\n require(!isProjectCanceled(idReceiver));\n\n uint64 oldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n uint64 toPledge = _findOrCreatePledge(\n idReceiver, // Set the new owner\n new uint64[](0), // clear the delegation chain\n 0,\n 0,\n oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n } \n\n\n /// @notice `transferOwnershipToGiver` allows for the transfer of\n /// value back to the Giver, value is placed in a pledged state\n /// without being attached to a project, delegation chain, or time line.\n /// @param idPledge the id of the pledge to be transferred.\n /// @param amount Quantity of value that's being transferred\n /// @param idReceiver The new owner of the pledge\n function _transferOwnershipToGiver(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n uint64 toPledge = _findOrCreatePledge(\n idReceiver,\n new uint64[](0),\n 0,\n 0,\n 0,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `appendDelegate` allows for a delegate to be added onto the\n /// end of the delegate chain for a given Pledge.\n /// @param idPledge the id of the pledge thats delegate chain will be modified.\n /// @param amount Quantity of value that's being chained.\n /// @param idReceiver The delegate to be added at the end of the chain\n function _appendDelegate(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.delegationChain.length < MAX_DELEGATES);\n uint64[] memory newDelegationChain = new uint64[](\n p.delegationChain.length + 1\n );\n for (uint i = 0; i < p.delegationChain.length; i++) {\n newDelegationChain[i] = p.delegationChain[i];\n }\n\n // Make the last item in the array the idReceiver\n newDelegationChain[p.delegationChain.length] = idReceiver;\n\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n newDelegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `appendDelegate` allows for a delegate to be added onto the\n /// end of the delegate chain for a given Pledge.\n /// @param idPledge the id of the pledge thats delegate chain will be modified.\n /// @param amount Quantity of value that's shifted from delegates.\n /// @param q Number (or depth) of delegates to remove\n /// @return toPledge The id for the pledge being adjusted or created\n function _undelegate(\n uint64 idPledge,\n uint amount,\n uint q\n ) internal returns (uint64 toPledge)\n {\n Pledge storage p = _findPledge(idPledge);\n uint64[] memory newDelegationChain = new uint64[](\n p.delegationChain.length - q\n );\n\n for (uint i = 0; i < p.delegationChain.length - q; i++) {\n newDelegationChain[i] = p.delegationChain[i];\n }\n toPledge = _findOrCreatePledge(\n p.owner,\n newDelegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `proposeAssignProject` proposes the assignment of a pledge\n /// to a specific project.\n /// @dev This function should potentially be named more specifically.\n /// @param idPledge the id of the pledge that will be assigned.\n /// @param amount Quantity of value this pledge leader would be assigned.\n /// @param idReceiver The project this pledge will potentially \n /// be assigned to.\n function _proposeAssignProject(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL);\n require(!isProjectCanceled(idReceiver));\n\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n idReceiver,\n uint64(_getTime() + _maxCommitTime(p)),\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `doTransfer` is designed to allow for pledge amounts to be \n /// shifted around internally.\n /// @param from This is the id of the pledge from which value will be transferred.\n /// @param to This is the id of the pledge that value will be transferred to.\n /// @param _amount The amount of value that will be transferred.\n function _doTransfer(uint64 from, uint64 to, uint _amount) internal {\n uint amount = _callPlugins(true, from, to, _amount);\n if (from == to) {\n return;\n }\n if (amount == 0) {\n return;\n }\n\n Pledge storage pFrom = _findPledge(from);\n Pledge storage pTo = _findPledge(to);\n\n require(pFrom.amount >= amount);\n pFrom.amount -= amount;\n pTo.amount += amount;\n\n Transfer(from, to, amount);\n _callPlugins(false, from, to, amount);\n }\n\n /// @notice A getter to find the longest commitTime out of the owner and all\n /// the delegates for a specified pledge\n /// @param p The Pledge being queried\n /// @return The maximum commitTime out of the owner and all the delegates\n function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) {\n PledgeAdmin storage a = _findAdmin(p.owner);\n commitTime = a.commitTime; // start with the owner's commitTime\n\n for (uint i = 0; i < p.delegationChain.length; i++) {\n a = _findAdmin(p.delegationChain[i]);\n\n // If a delegate's commitTime is longer, make it the new commitTime\n if (a.commitTime > commitTime) {\n commitTime = a.commitTime;\n }\n }\n }\n\n /// @notice A getter to find the oldest pledge that hasn't been canceled\n /// @param idPledge The starting place to lookup the pledges\n /// @return The oldest idPledge that hasn't been canceled (DUH!)\n function _getOldestPledgeNotCanceled(\n uint64 idPledge\n ) internal view returns(uint64)\n {\n if (idPledge == 0) {\n return 0;\n }\n\n Pledge storage p = _findPledge(idPledge);\n PledgeAdmin storage admin = _findAdmin(p.owner);\n \n if (admin.adminType == PledgeAdminType.Giver) {\n return idPledge;\n }\n\n assert(admin.adminType == PledgeAdminType.Project);\n if (!isProjectCanceled(p.owner)) {\n return idPledge;\n }\n\n return _getOldestPledgeNotCanceled(p.oldPledge);\n }\n\n /// @notice `callPlugin` is used to trigger the general functions in the\n /// plugin for any actions needed before and after a transfer happens.\n /// Specifically what this does in relation to the plugin is something\n /// that largely depends on the functions of that plugin. This function\n /// is generally called in pairs, once before, and once after a transfer.\n /// @param before This toggle determines whether the plugin call is occurring\n /// before or after a transfer.\n /// @param adminId This should be the Id of the *trusted* individual\n /// who has control over this plugin.\n /// @param fromPledge This is the Id from which value is being transfered.\n /// @param toPledge This is the Id that value is being transfered to.\n /// @param context The situation that is triggering the plugin. See plugin\n /// for a full description of contexts.\n /// @param amount The amount of value that is being transfered.\n function _callPlugin(\n bool before,\n uint64 adminId,\n uint64 fromPledge,\n uint64 toPledge,\n uint64 context,\n address token,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n uint newAmount;\n allowedAmount = amount;\n PledgeAdmin storage admin = _findAdmin(adminId);\n\n // Checks admin has a plugin assigned and a non-zero amount is requested\n if (address(admin.plugin) != 0 && allowedAmount > 0) {\n // There are two separate functions called in the plugin.\n // One is called before the transfer and one after\n if (before) {\n newAmount = admin.plugin.beforeTransfer(\n adminId,\n fromPledge,\n toPledge,\n context,\n token,\n amount\n );\n require(newAmount <= allowedAmount);\n allowedAmount = newAmount;\n } else {\n admin.plugin.afterTransfer(\n adminId,\n fromPledge,\n toPledge,\n context,\n token,\n amount\n );\n }\n }\n }\n\n /// @notice `callPluginsPledge` is used to apply plugin calls to\n /// the delegate chain and the intended project if there is one.\n /// It does so in either a transferring or receiving context based\n /// on the `p` and `fromPledge` parameters.\n /// @param before This toggle determines whether the plugin call is occuring\n /// before or after a transfer.\n /// @param idPledge This is the id of the pledge on which this plugin\n /// is being called.\n /// @param fromPledge This is the Id from which value is being transfered.\n /// @param toPledge This is the Id that value is being transfered to.\n /// @param amount The amount of value that is being transfered.\n function _callPluginsPledge(\n bool before,\n uint64 idPledge,\n uint64 fromPledge,\n uint64 toPledge,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n // Determine if callPlugin is being applied in a receiving\n // or transferring context\n uint64 offset = idPledge == fromPledge ? 0 : 256;\n allowedAmount = amount;\n Pledge storage p = _findPledge(idPledge);\n\n // Always call the plugin on the owner\n allowedAmount = _callPlugin(\n before,\n p.owner,\n fromPledge,\n toPledge,\n offset,\n p.token,\n allowedAmount\n );\n\n // Apply call plugin to all delegates\n for (uint64 i = 0; i < p.delegationChain.length; i++) {\n allowedAmount = _callPlugin(\n before,\n p.delegationChain[i],\n fromPledge,\n toPledge,\n offset + i + 1,\n p.token,\n allowedAmount\n );\n }\n\n // If there is an intended project also call the plugin in\n // either a transferring or receiving context based on offset\n // on the intended project\n if (p.intendedProject > 0) {\n allowedAmount = _callPlugin(\n before,\n p.intendedProject,\n fromPledge,\n toPledge,\n offset + 255,\n p.token,\n allowedAmount\n );\n }\n }\n\n /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer\n /// context and once for the receiving context. The aggregated \n /// allowed amount is then returned.\n /// @param before This toggle determines whether the plugin call is occurring\n /// before or after a transfer.\n /// @param fromPledge This is the Id from which value is being transferred.\n /// @param toPledge This is the Id that value is being transferred to.\n /// @param amount The amount of value that is being transferred.\n function _callPlugins(\n bool before,\n uint64 fromPledge,\n uint64 toPledge,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n allowedAmount = amount;\n\n // Call the plugins in the transfer context\n allowedAmount = _callPluginsPledge(\n before,\n fromPledge,\n fromPledge,\n toPledge,\n allowedAmount\n );\n\n // Call the plugins in the receive context\n allowedAmount = _callPluginsPledge(\n before,\n toPledge,\n fromPledge,\n toPledge,\n allowedAmount\n );\n }\n\n/////////////\n// Test functions\n/////////////\n\n /// @notice Basic helper function to return the current time\n function _getTime() internal view returns (uint) {\n return now;\n }\n}\n" }, - "./contracts/LiquidPledgingMock.sol": { - "keccak256": "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd", + "./contracts/LiquidPledging.sol": { + "keccak256": "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d", "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingMock.sol" + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledging.sol" ], - "content": "pragma solidity ^0.4.11;\n/*\n Copyright 2017, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledging.sol\";\n// hack so that solcpiler will generate a contracts.Kernel object\nimport \"@aragon/os/contracts/kernel/Kernel.sol\";\n\n/// @dev `LiquidPledgingMock` allows for mocking up\n/// a `LiquidPledging` contract with the added ability\n/// to manipulate the block time for testing purposes.\ncontract LiquidPledgingMock is LiquidPledging {\n\n uint public mock_time;\n\n function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public {\n }\n\n /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging`\n /// instance and sets the mocked time to the current blocktime.\n function initialize(address _vault, address _escapeHatchDestination) onlyInit public {\n super.initialize(_vault, _escapeHatchDestination);\n mock_time = now;\n }\n\n /// @dev `getTime` is a basic getter function for\n /// the mock_time parameter\n function _getTime() internal view returns (uint) {\n return mock_time;\n }\n\n /// @dev `setMockedTime` is a basic setter function for\n /// the mock_time parameter\n /// @param _t This is the value to which the mocked time\n /// will be set.\n function setMockedTime(uint _t) public {\n mock_time = _t;\n }\n}\n" + "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledgingBase.sol\";\n\n/// @dev `LiquidPledging` allows for liquid pledging through the use of\n/// internal id structures and delegate chaining. All basic operations for\n/// handling liquid pledging are supplied as well as plugin features\n/// to allow for expanded functionality.\ncontract LiquidPledging is LiquidPledgingBase {\n\n function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public {\n }\n\n function addGiverAndDonate(uint64 idReceiver, address token, uint amount)\n public\n {\n addGiverAndDonate(idReceiver, msg.sender, token, amount);\n }\n\n function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount)\n public\n {\n require(donorAddress != 0);\n // default to a 3 day (259200 seconds) commitTime\n uint64 idGiver = addGiver(donorAddress, \"\", \"\", 259200, ILiquidPledgingPlugin(0));\n donate(idGiver, idReceiver, token, amount);\n }\n\n /// @notice This is how value enters the system and how pledges are created;\n /// the ether is sent to the vault, an pledge for the Giver is created (or\n /// found), the amount of ETH donated in wei is added to the `amount` in\n /// the Giver's Pledge, and an LP transfer is done to the idReceiver for\n /// the full amount\n /// @param idGiver The id of the Giver donating\n /// @param idReceiver The Admin receiving the donation; can be any Admin:\n /// the Giver themselves, another Giver, a Delegate or a Project\n function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount)\n public\n {\n require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer\n require(amount > 0);\n require(token != 0x0);\n\n PledgeAdmin storage sender = _findAdmin(idGiver);\n require(sender.adminType == PledgeAdminType.Giver);\n\n // TODO should this be done at the end of this function?\n // what re-entrancy issues are there if this is done here?\n // if done at the end of the function, will that affect plugins?\n require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault`\n\n uint64 idPledge = _findOrCreatePledge(\n idGiver,\n new uint64[](0), // Creates empty array for delegationChain\n 0,\n 0,\n 0,\n token,\n PledgeState.Pledged\n );\n\n Pledge storage pTo = _findPledge(idPledge);\n pTo.amount += amount;\n\n Transfer(0, idPledge, amount);\n\n _transfer(idGiver, idPledge, amount, idReceiver);\n }\n\n /// @notice Transfers amounts between pledges for internal accounting\n /// @param idSender Id of the Admin that is transferring the amount from\n /// Pledge to Pledge; this admin must have permissions to move the value\n /// @param idPledge Id of the pledge that's moving the value\n /// @param amount Quantity of ETH (in wei) that this pledge is transferring \n /// the authority to withdraw from the vault\n /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending\n /// to a Giver, a Delegate or a Project; a Delegate sending to another\n /// Delegate, or a Delegate pre-commiting it to a Project \n function transfer( \n uint64 idSender,\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) public\n {\n _checkAdminOwner(idSender);\n _transfer(idSender, idPledge, amount, idReceiver);\n }\n\n /// @notice Authorizes a payment be made from the `vault` can be used by the\n /// Giver to veto a pre-committed donation from a Delegate to an\n /// intendedProject\n /// @param idPledge Id of the pledge that is to be redeemed into ether\n /// @param amount Quantity of ether (in wei) to be authorized\n function withdraw(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge); // Updates pledge info \n\n Pledge storage p = _findPledge(idPledge);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paying\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n\n PledgeAdmin storage owner = _findAdmin(p.owner);\n vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount);\n }\n\n /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState\n /// from Paying to Paid\n /// @param idPledge Id of the pledge that is to be withdrawn\n /// @param amount Quantity of ether (in wei) to be withdrawn\n function confirmPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paid\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n }\n\n /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState\n /// from Paying back to Pledged\n /// @param idPledge Id of the pledge that's withdraw is to be canceled\n /// @param amount Quantity of ether (in wei) to be canceled\n function cancelPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n // When a payment is canceled, never is assigned to a project.\n uint64 idOldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n\n idOldPledge = normalizePledge(idOldPledge);\n\n _doTransfer(idPledge, idOldPledge, amount);\n }\n\n /// @notice Changes the `project.canceled` flag to `true`; cannot be undone\n /// @param idProject Id of the project that is to be canceled\n function cancelProject(uint64 idProject) public {\n PledgeAdmin storage project = _findAdmin(idProject);\n _checkAdminOwner(idProject);\n project.canceled = true;\n\n CancelProject(idProject);\n }\n\n /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that\n /// that sent it there in the first place, a Ctrl-z \n /// @param idPledge Id of the pledge that is to be canceled\n /// @param amount Quantity of ether (in wei) to be transfered to the \n /// `oldPledge`\n function cancelPledge(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge);\n\n Pledge storage p = _findPledge(idPledge);\n require(p.oldPledge != 0);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge);\n _doTransfer(idPledge, oldPledge, amount);\n }\n\n\n////////\n// Multi pledge methods\n////////\n\n // @dev This set of functions makes moving a lot of pledges around much more\n // efficient (saves gas) than calling these functions in series\n \n \n /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods\n uint constant D64 = 0x10000000000000000;\n\n /// @notice Transfers multiple amounts within multiple Pledges in an\n /// efficient single call \n /// @param idSender Id of the Admin that is transferring the amounts from\n /// all the Pledges; this admin must have permissions to move the value\n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or \n /// Project sending to a Giver, a Delegate or a Project; a Delegate sending\n /// to another Delegate, or a Delegate pre-commiting it to a Project \n function mTransfer(\n uint64 idSender,\n uint[] pledgesAmounts,\n uint64 idReceiver\n ) public \n {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n transfer(idSender, idPledge, amount, idReceiver);\n }\n }\n\n /// @notice Authorizes multiple amounts within multiple Pledges to be\n /// withdrawn from the `vault` in an efficient single call \n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n function mWithdraw(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n withdraw(idPledge, amount);\n }\n }\n\n /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mConfirmPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n confirmPayment(idPledge, amount);\n }\n }\n\n /// @notice `mCancelPayment` allows for multiple pledges to be canceled\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mCancelPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n cancelPayment(idPledge, amount);\n }\n }\n\n /// @notice `mNormalizePledge` allows for multiple pledges to be\n /// normalized efficiently\n /// @param pledges An array of pledge IDs\n function mNormalizePledge(uint64[] pledges) public {\n for (uint i = 0; i < pledges.length; i++ ) {\n normalizePledge(pledges[i]);\n }\n }\n}\n" }, "@aragon/os/contracts/kernel/KernelStorage.sol": { "keccak256": "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e", @@ -281,13 +281,6 @@ ], "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: RJ Ewing, Griff Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n/// @dev This contract holds ether securely for liquid pledging systems; for\n/// this iteration the funds will come often be escaped to the Giveth Multisig\n/// (safety precaution), but once fully tested and optimized this contract will\n/// be a safe place to store funds equipped with optional variable time delays\n/// to allow for an optional escapeHatch to be implemented in case of issues;\n/// future versions of this contract will be enabled for tokens\nimport \"./EscapableApp.sol\";\nimport \"./LiquidPledgingACLHelpers.sol\";\nimport \"giveth-common-contracts/contracts/ERC20.sol\";\n\n/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract\n/// to confirm and cancel payments in the `LiquidPledging` contract.\ncontract ILiquidPledging {\n function confirmPayment(uint64 idPledge, uint amount) public;\n function cancelPayment(uint64 idPledge, uint amount) public;\n}\n\n/// @dev `LPVault` is a higher level contract built off of the `Escapable`\n/// contract that holds funds for the liquid pledging system.\ncontract LPVault is EscapableApp, LiquidPledgingACLHelpers {\n\n bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256(\"CONFIRM_PAYMENT_ROLE\");\n bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256(\"CANCEL_PAYMENT_ROLE\");\n bytes32 constant public SET_AUTOPAY_ROLE = keccak256(\"SET_AUTOPAY_ROLE\");\n\n event AutoPaySet(bool autoPay);\n event EscapeFundsCalled(address token, uint amount);\n event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref);\n event CancelPayment(uint indexed idPayment, bytes32 indexed ref);\n event AuthorizePayment(\n uint indexed idPayment,\n bytes32 indexed ref,\n address indexed dest,\n address token,\n uint amount\n );\n\n enum PaymentStatus {\n Pending, // When the payment is awaiting confirmation\n Paid, // When the payment has been sent\n Canceled // When the payment will never be sent\n }\n\n /// @dev `Payment` is a public structure that describes the details of\n /// each payment the `ref` param makes it easy to track the movements of\n /// funds transparently by its connection to other `Payment` structs\n struct Payment {\n bytes32 ref; // an input that references details from other contracts\n address dest; // recipient of the ETH\n PaymentStatus state; // Pending, Paid or Canceled\n address token;\n uint amount; // amount of ETH (in wei) to be sent\n }\n\n bool public autoPay; // If false, payments will take 2 txs to be completed\n\n // @dev An array that contains all the payments for this LPVault\n Payment[] public payments;\n ILiquidPledging public liquidPledging;\n\n /// @dev The attached `LiquidPledging` contract is the only address that can\n /// call a function with this modifier\n modifier onlyLiquidPledging() {\n require(msg.sender == address(liquidPledging));\n _;\n }\n\n function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public {\n }\n\n function initialize(address _escapeHatchDestination) onlyInit public {\n require(false); // overload the EscapableApp\n _escapeHatchDestination;\n }\n\n /// @param _liquidPledging \n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external {\n super.initialize(_escapeHatchDestination);\n\n require(_liquidPledging != 0x0);\n liquidPledging = ILiquidPledging(_liquidPledging);\n }\n\n /// @notice Used to decentralize, toggles whether the LPVault will\n /// automatically confirm a payment after the payment has been authorized\n /// @param _automatic If true, payments will confirm instantly, if false\n /// the training wheels are put on and the owner must manually approve \n /// every payment\n function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) {\n autoPay = _automatic;\n AutoPaySet(autoPay);\n }\n\n /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner`\n /// must call `confirmPayment()` for a transfer to occur (training wheels);\n /// either way, a new payment is added to `payments[]` \n /// @param _ref References the payment will normally be the pledgeID\n /// @param _dest The address that payments will be sent to\n /// @param _amount The amount that the payment is being authorized for\n /// @return idPayment The id of the payment (needed by the owner to confirm)\n function authorizePayment(\n bytes32 _ref,\n address _dest,\n address _token,\n uint _amount\n ) external onlyLiquidPledging returns (uint)\n {\n uint idPayment = payments.length;\n payments.length ++;\n payments[idPayment].state = PaymentStatus.Pending;\n payments[idPayment].ref = _ref;\n payments[idPayment].dest = _dest;\n payments[idPayment].token = _token;\n payments[idPayment].amount = _amount;\n\n AuthorizePayment(idPayment, _ref, _dest, _token, _amount);\n\n if (autoPay) {\n _doConfirmPayment(idPayment);\n }\n\n return idPayment;\n }\n\n /// @notice Allows the owner to confirm payments; since \n /// `authorizePayment` is the only way to populate the `payments[]` array\n /// this is generally used when `autopay` is `false` after a payment has\n /// has been authorized\n /// @param _idPayment Array lookup for the payment.\n function confirmPayment(uint _idPayment) public {\n Payment storage p = payments[_idPayment];\n require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount)));\n _doConfirmPayment(_idPayment);\n }\n\n /// @notice When `autopay` is `false` and after a payment has been authorized\n /// to allow the owner to cancel a payment instead of confirming it.\n /// @param _idPayment Array lookup for the payment.\n function cancelPayment(uint _idPayment) external {\n _doCancelPayment(_idPayment);\n }\n\n /// @notice `onlyOwner` An efficient way to confirm multiple payments\n /// @param _idPayments An array of multiple payment ids\n function multiConfirm(uint[] _idPayments) external {\n for (uint i = 0; i < _idPayments.length; i++) {\n confirmPayment(_idPayments[i]);\n }\n }\n\n /// @notice `onlyOwner` An efficient way to cancel multiple payments\n /// @param _idPayments An array of multiple payment ids\n function multiCancel(uint[] _idPayments) external {\n for (uint i = 0; i < _idPayments.length; i++) {\n _doCancelPayment(_idPayments[i]);\n }\n }\n\n /// Transfer tokens to the escapeHatchDestination.\n /// Used as a safety mechanism to prevent the vault from holding too much value\n /// before being thoroughly battle-tested.\n /// @param _token to transfer\n /// @param _amount to transfer\n function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) {\n require(_token != 0x0);\n ERC20 token = ERC20(_token);\n require(token.transfer(escapeHatchDestination, _amount));\n EscapeFundsCalled(_token, _amount);\n }\n\n /// @return The total number of payments that have ever been authorized\n function nPayments() external view returns (uint) {\n return payments.length;\n }\n\n /// @notice Transfers ETH according to the data held within the specified\n /// payment id (internal function)\n /// @param _idPayment id number for the payment about to be fulfilled \n function _doConfirmPayment(uint _idPayment) internal {\n require(_idPayment < payments.length);\n Payment storage p = payments[_idPayment];\n require(p.state == PaymentStatus.Pending);\n\n p.state = PaymentStatus.Paid;\n liquidPledging.confirmPayment(uint64(p.ref), p.amount);\n\n ERC20 token = ERC20(p.token);\n require(token.transfer(p.dest, p.amount)); // Transfers token to dest\n\n ConfirmPayment(_idPayment, p.ref);\n }\n\n /// @notice Cancels a pending payment (internal function)\n /// @param _idPayment id number for the payment \n function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) {\n require(_idPayment < payments.length);\n Payment storage p = payments[_idPayment];\n require(p.state == PaymentStatus.Pending);\n\n p.state = PaymentStatus.Canceled;\n\n liquidPledging.cancelPayment(uint64(p.ref), p.amount);\n\n CancelPayment(_idPayment, p.ref);\n }\n}\n" }, - "./contracts/test/TestSimpleDelegatePlugin.sol": { - "keccak256": "0xfde1c913002ece2fae9c5b208971d9b1f56b2a30762e673901c6d2131d28919f", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleDelegatePlugin.sol" - ], - "content": "pragma solidity ^0.4.11;\n\nimport \"../LiquidPledging.sol\";\n\n// simple liquidPledging plugin contract for testing whitelist\ncontract TestSimpleDelegatePlugin {\n\n uint64 public idDelegate;\n LiquidPledging liquidPledging;\n bool initPending;\n\n event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n\n function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) {\n require(msg.sender != tx.origin); // Avoids being created directly by mistake.\n liquidPledging = _liquidPledging;\n initPending = true;\n }\n\n function init(\n string name,\n string url,\n uint64 commitTime\n ) {\n require(initPending);\n idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this));\n initPending = false;\n }\n\n function beforeTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external returns (uint maxAllowed) {\n require(!initPending);\n BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n function afterTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external {\n require(!initPending);\n AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n}\n\ncontract TestSimpleDelegatePluginFactory {\n\n function TestSimpleDelegatePluginFactory (\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 commitTime\n ) {\n TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging);\n d.init(name, url, commitTime);\n }\n\n}\n" - }, "./contracts/test/TestSimpleProjectPlugin.sol": { "keccak256": "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159", "urls": [ @@ -295,6 +288,13 @@ ], "content": "pragma solidity ^0.4.11;\n\nimport \"../LiquidPledging.sol\";\n\n// simple liquidPledging plugin contract for testing whitelist\ncontract TestSimpleProjectPlugin {\n\n uint64 public idProject;\n bool initPending;\n\n event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n\n function TestSimpleProjectPlugin() {\n require(msg.sender != tx.origin); // Avoids being created directly by mistake.\n initPending = true;\n }\n\n function init(\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 parentProject\n ) {\n require(initPending);\n idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this));\n initPending = false;\n }\n\n function beforeTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external returns (uint maxAllowed) {\n require(!initPending);\n BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n function afterTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external {\n require(!initPending);\n AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n}\n" }, + "./contracts/test/TestSimpleDelegatePlugin.sol": { + "keccak256": "0xbf3f85c43cc59d922946a49ba872a8b634210f2d2169111001429e31dab2638a", + "urls": [ + "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleDelegatePlugin.sol" + ], + "content": "pragma solidity ^0.4.11;\n\nimport \"../LiquidPledging.sol\";\n\n// simple liquidPledging plugin contract for testing whitelist\ncontract TestSimpleDelegatePlugin {\n\n uint64 public idDelegate;\n LiquidPledging liquidPledging;\n bool initPending;\n\n event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n\n function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) public {\n require(msg.sender != tx.origin); // Avoids being created directly by mistake.\n liquidPledging = _liquidPledging;\n initPending = true;\n }\n\n function init(\n string name,\n string url,\n uint64 commitTime\n ) public {\n require(initPending);\n idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this));\n initPending = false;\n }\n\n function beforeTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external returns (uint maxAllowed) {\n require(!initPending);\n BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n function afterTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external {\n require(!initPending);\n AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n}\n\ncontract TestSimpleDelegatePluginFactory {\n\n function TestSimpleDelegatePluginFactory(\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 commitTime\n ) public {\n TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging);\n d.init(name, url, commitTime);\n }\n\n}\n" + }, "./contracts/test/TestSimpleProjectPluginFactory.sol": { "keccak256": "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08", "urls": [ diff --git a/build/solcStandardOutput.json b/build/solcStandardOutput.json index 1de589c..b29bcda 100644 --- a/build/solcStandardOutput.json +++ b/build/solcStandardOutput.json @@ -940,12 +940,12 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f2500296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", + "object": "606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd400296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", "sourceMap": "164:2353:3:-;;;369:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;443:1:3;;-1:-1:-1;521:12:36;;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:36;-1:-1:-1;;;;;500:34:36;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:36;-1:-1:-1;;;;;544:28:36;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:36;-1:-1:-1;;;;;628:50:36;;;;;583:106;-1:-1:-1;;;;;;464:15:3;;;;456:24;;;;;;-1:-1:-1;;;;;498:12:3;;;;490:21;;;;;;521:9;:22;;-1:-1:-1;;;;;521:22:3;;;-1:-1:-1;;;;;;521:22:3;;;;;;;553:6;:16;;;;;;;;;;;164:2353;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a7230582002935f5e0a39bc934cd35e7223317a977e915909bda75fb577380b4ebfdc8f250029", + "object": "6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd40029", "sourceMap": "164:2353:3:-;;;;;;;;;-1:-1:-1;;;164:2353:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:36;;;;;;;;;;;;;;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;246:21:3;;;;;;;;;;;;797:1010:36;;;;;;;;;;-1:-1:-1;;;;;797:1010:36;;;;;336:77:41;;;;;;;;;;;;192:63:2;;;;;;;;;;;;247:42:36;;;;;;;;;;;;57:58:41;;;;;;;;;;;;492:75;;;;;;;;;;;;188:25:36;;;;;;;;;;;;582:755:3;;;;;;;;;;-1:-1:-1;;;;;582:755:3;;;;;;;;;;;;420:66:41;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:41;;;;;;;;;;;;216:24:3;;;;;;;;;;;;219:22:36;;;-1:-1:-1;;;;;219:22:36;;:::o;258:72:41:-;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;246:21:3:-;;;-1:-1:-1;;;;;246:21:3;;:::o;797:1010:36:-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:36;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:36;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:36;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:36;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:36;;;;;;-1:-1:-1;;;;;998:36:36;;;;;;;;;;;;;;;-1:-1:-1;998:36:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:36;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:36;1084:33;;-1:-1:-1;1080:696:36;;1152:3;-1:-1:-1;;;;;1152:27:36;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:36;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:36;;;;-1:-1:-1;1257:19:36;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:36;;;;;;-1:-1:-1;;;;;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:36;;-1:-1:-1;;;;;1318:20:36;;;;-1:-1:-1;1318:20:36;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:36;;;;;;-1:-1:-1;;;;;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:36;;-1:-1:-1;;;;;1416:10:36;;-1:-1:-1;1416:31:36;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:36;;;;;;-1:-1:-1;;;;;1416:43:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:36;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:36;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:36;;;;;;-1:-1:-1;;;;;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:36;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:36;;;;;;-1:-1:-1;;;;;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:36;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:36;;;;;;-1:-1:-1;;;;;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:36;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:36;;;;;;-1:-1:-1;;;;;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:36;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;336:77:41:-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;247:42:36:-;;;-1:-1:-1;;;;;247:42:36;;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;188:25:36:-;;;-1:-1:-1;;;;;188:25:36;;:::o;582:755:3:-;664:13;702:7;740:22;877:9;954:17;680:12;687:4;680:6;:12::i;:::-;664:28;;716:6;-1:-1:-1;;;;;716:10:3;;:12;;;;;;;;;;;-1:-1:-1;;;716:12:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;765:23:3;;;:25;;;;;;;;;;;-1:-1:-1;;;765:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;801:20:3;;;822:4;836:6;765:25;822:4;801:65;;-1:-1:-1;;;801:65:3;;;;;;-1:-1:-1;;;;;801:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;801:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;897:6;-1:-1:-1;;;;;897:21:3;;168:18:2;;;;;;;;;;;;;;;933:9:3;;-1:-1:-1;;;;;933:9:3;;897:46;;;;;;;-1:-1:-1;;;897:46:3;;;;;;;;;;;;;-1:-1:-1;;;;;897:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;989:21:3;;;228:27:2;;;;;;;;;;;;;;;1022:6:3;;-1:-1:-1;;;;;1022:6:3;;989:40;;;;;;;-1:-1:-1;;;989:40:3;;;;;;;;;;;;;-1:-1:-1;;;;;989:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1040:12:3;;;989:40;1066:23;1040:50;;-1:-1:-1;;;1040:50:3;;;;;;-1:-1:-1;;;;;1040:50:3;;;;;;;;;;;;;;;-1:-1:-1;1040:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:2;-1:-1:-1;;;;;1100:13:3;;1122:1;1126:23;1100:50;;-1:-1:-1;;;1100:50:3;;;;;;-1:-1:-1;;;;;1100:50:3;;;;;;;;;;;;;;;-1:-1:-1;1100:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1211:13:3;;;;1225:25;:27;;;;;;;;;;;-1:-1:-1;;;1225:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228::2;;;;;;;;;;;;;;1273:2:3;1211:66;;;;;;;;-1:-1:-1;;;1211:66:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1211:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:42;1304:5;1311:3;1316:6;1324:1;1327:2;1288:15;:42::i;:::-;582:755;;;;;;;:::o;420:66:41:-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o;216:24:3:-;;;-1:-1:-1;;;;;216:24:3;;:::o;1343:1172::-;1456:22;1516:16;1574:23;1638:25;1481:6;-1:-1:-1;;;;;1481:23:3;;:25;;;;;;;;;;;-1:-1:-1;;;1481:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1535:27:3;;;:29;;;;;;;;;;;-1:-1:-1;;;1535:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1600:26:3;;;:28;;;;;;;;;;;-1:-1:-1;;;1600:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1666:22:3;;;:24;;;;;;;;;;;-1:-1:-1;;;1666:24:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1701:20:3;;;1722:5;1737:1;1741:15;1722:5;1701:63;;-1:-1:-1;;;1701:63:3;;;;;;-1:-1:-1;;;;;1701:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1701:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1774:3;-1:-1:-1;;;;;1774:20:3;;1795:5;1810:2;1815:15;1832:5;1774:64;;-1:-1:-1;;;1774:64:3;;;;;;-1:-1:-1;;;;;1774:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1848:3;-1:-1:-1;;;;;1848:20:3;;1869:5;1884:2;1889:17;1908:5;1848:66;;-1:-1:-1;;;1848:66:3;;;;;;-1:-1:-1;;;;;1848:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1848:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2043:3;-1:-1:-1;;;;;2043:19:3;;2063:5;2078:6;2087:14;2043:59;;-1:-1:-1;;;2043:59:3;;;;;;-1:-1:-1;;;;;2043:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2043:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2112:3;-1:-1:-1;;;;;2112:19:3;;2132:5;2147:3;2153:8;2112:50;;-1:-1:-1;;;2112:50:3;;;;;;-1:-1:-1;;;;;2112:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2112:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2172:3;-1:-1:-1;;;;;2172:20:3;;2193:4;2207:6;2216:14;2172:59;;-1:-1:-1;;;2172:59:3;;;;;;-1:-1:-1;;;;;2172:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2172:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:3;-1:-1:-1;;;;;2241:20:3;;2262:4;2276:3;2282:8;2241:50;;-1:-1:-1;;;2241:50:3;;;;;;-1:-1:-1;;;;;2241:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2241:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2302:3;-1:-1:-1;;;;;2302:24:3;;2327:5;2342:6;2351:14;2302:64;;-1:-1:-1;;;2302:64:3;;;;;;-1:-1:-1;;;;;2302:64:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2302:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2376:3;-1:-1:-1;;;;;2376:24:3;;2401:5;2416:3;2422:8;2376:55;;-1:-1:-1;;;2376:55:3;;;;;;-1:-1:-1;;;;;2376:55:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:23;2462:1;2442:23;;-1:-1:-1;;;;;2442:23:3;;;;;;;;;;;;;;2475:33;2504:2;2475:33;;-1:-1:-1;;;;;2475:33:3;;;;;;;;;;;;;;1343:1172;;;;;;;;;:::o;164:2353::-;;;;;;;;;;:::o" }, "gasEstimates": { @@ -2938,6 +2938,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverAdded", @@ -2950,6 +2955,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverUpdated", @@ -2962,6 +2972,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateAdded", @@ -2974,6 +2989,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateUpdated", @@ -2986,6 +3006,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectAdded", @@ -2998,6 +3023,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectUpdated", @@ -3219,17 +3249,17 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052607f805460ff1916905534156200001a57600080fd5b604051602080620055198339810160405280805191508190506200004c8164010000000062004a8d6200005482021704565b5050620000d3565b6200006c64010000000062004e36620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005015620000cf82021704565b600355565b4390565b61543680620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029", + "object": "6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029", "sourceMap": "1113:10259:5:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1166:109:5;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:109:5;;-1:-1:-1;1809:30:0;1166:109:5;1809:5:0;;;;;;:30;:::i;:::-;1737:109;1166::5;1113:10259;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1113:10259:5:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611cf7565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d0195505050505050565b341561066557600080fd5b6102eb611d6c565b341561067857600080fd5b610290600160a060020a0360043516611da0565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e01565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e0d915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612003565b34156107d057600080fd5b6102906001604060020a036004351661248f565b34156107ef57600080fd5b610290600160a060020a03600435166124f9565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612571565b341561085057600080fd5b6102eb6125ed565b341561086357600080fd5b6102eb600160a060020a03600435166125f3565b341561088257600080fd5b6102a5600160a060020a0360043516612675565b34156108a157600080fd5b6102eb612694565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269a95505050505050565b341561090357600080fd5b6102eb612705565b341561091657600080fd5b610290600160a060020a0360043516612781565b341561093557600080fd5b6102a560048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d795505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612b15565b34156109ba57600080fd5b6102eb612baa565b34156109cd57600080fd5b610290600435612bde565b34156109e357600080fd5b610290600160a060020a0360043516612c36565b3415610a0257600080fd5b610290600435612c46565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb5565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612d9d95505050505050565b3415610ab357600080fd5b610abb612dd4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e58565b3415610b9657600080fd5b6102906001604060020a0360043516602435612f40565b3415610bb857600080fd5b610bcc6001604060020a0360043516613068565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323795505050505050565b3415610d5d57600080fd5b610abb6132a2565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b1565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339995505050505050565b3415610e0d57600080fd5b610abb613475565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e0d565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e8583613489565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206153cb8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846134cf565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613500565b9050611076848285613822565b50505050565b600080611087615019565b600080611093876134cf565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e685613489565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206153cb833981519152815260130160405180910390206111f5338260006040518059106111df5750595b90808252806020026020018201604052506129d7565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612c46565b600190910190611205565b6040516000805160206153cb83398151915281526013016040518091039020611286338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861502b565b6112c18a6134cf565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856134cf565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166138e2565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613500565b915061154e858386613822565b6002830154611565906001604060020a0316613489565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846138e2565b61107684848484613939565b6003541561162a57600080fd5b61163381613fa5565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615077565b506001611683607b826150a3565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd87613489565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613500565b91506117c3826134cf565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613939565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836125f3565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856134cf565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d613fbb565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050611a4385828560000154613822565b809450611a4f856134cf565b92505b611a5b85613fbf565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613822565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615077565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906150cf565b5060e082015181600301908051611cb39291602001906150cf565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d2357fe5b90602001906020020151169150604060020a848481518110611d4157fe5b90602001906020020151811515611d5457fe5b049050611d618282611421565b600190920191611d06565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020611dc882614087565b611dd33383836129d7565b1515611dde57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e188261181f565b1515611e2357600080fd5b50607a8054908160018101611e388382615077565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611eb557fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fa69291602001906150cf565b5060e082015181600301908051611fc19291602001906150cf565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200f8361181f565b151561201a57600080fd5b6001604060020a038516156122375761203285613489565b90506014612224826101006040519081016040528154909190829060ff16600281111561205b57fe5b600281111561206657fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121745780601f1061214957610100808354040283529160200191612174565b820191906000526020600020905b81548152906001019060200180831161215757829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505050815250506140a7565b6001604060020a03161061223757600080fd5b607a80549250826001810161224c8382615077565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233c57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206153eb833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242d9291602001906150cf565b5060e0820151816003019080516124489291602001906150cf565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b600061249a82613489565b90506124a5826138e2565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206153cb83398151915281526013016040518091039020612541338260006040518059106111df57505990808252806020026020018201604052506129d7565b151561254c57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125e23388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e0d565b979650505050505050565b60015481565b60006125fd615019565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126415780518252601f199092019160209182019101612622565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a038484815181106126bc57fe5b90602001906020020151169150604060020a8484815181106126da57fe5b906020019060200201518115156126ed57fe5b0490506126fa8282610f48565b60019092019161269f565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127be84614087565b6127c93383836129d7565b15156127d457600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127fa57600080fd5b600160a060020a038516151561288c57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284357600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e657600080fd5b6102c65a03f115156128f757600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296657600080fd5b6102c65a03f1151561297757600080fd5b50505060405180519050151561298c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129e1615019565b600080845111156129fa57835160200290508391508082525b600054600160a060020a03161580612b0b575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612aa1578082015183820152602001612a89565b50505050905090810190601f168015612ace5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aef57600080fd5b6102c65a03f11515612b0057600080fd5b505050604051805190505b9695505050505050565b600080612b2184611896565b9350612b2c846134cf565b600281015490925060c060020a90046001604060020a03161515612b4f57600080fd5b6000600383015460a060020a900460ff166002811115612b6b57fe5b14612b7557600080fd5b6002820154612b8c906001604060020a03166138e2565b60028201546110699060c060020a90046001604060020a0316613fbf565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206153cb83398151915281526013016040518091039020612c068261411b565b612c113383836129d7565b1515612c1c57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206153cb83398151915281526013016040518091039020612c8e338260006040518059106111df57505990808252806020026020018201604052506129d7565b1515612c9957600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc088613489565b805490915033600160a060020a039081166101009092041614612ce257600080fd5b6001815460ff166002811115612cf457fe5b14612cfe57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2a600282018787615149565b50612d39600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd057612dc7828281518110612db857fe5b90602001906020020151611896565b50600101612da0565b5050565b600054600160a060020a031681565b600080805b8451831015612e50576001604060020a03858481518110612e0557fe5b90602001906020020151169150604060020a858481518110612e2357fe5b90602001906020020151811515612e3657fe5b049050612e4586838387611608565b600190920191612de8565b505050505050565b6000612e6388613489565b805490915033600160a060020a039081166101009092041614612e8557600080fd5b6000815460ff166002811115612e9757fe5b14612ea157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ecd600282018787615149565b50612edc600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6557600080fd5b612f6e846134cf565b91506001600383015460a060020a900460ff166002811115612f8c57fe5b14612f9657600080fd5b600282015460018301805461305d926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe65790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b905061106981611896565b600080613073615019565b61307b615019565b600080600080600061308c8a613489565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131415780601f1061311657610100808354040283529160200191613141565b820191906000526020600020905b81548152906001019060200180831161312457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e05780601f106131b5576101008083540402835291602001916131e0565b820191906000526020600020905b8154815290600101906020018083116131c357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061325957fe5b90602001906020020151169150604060020a84848151811061327757fe5b9060200190602002015181151561328a57fe5b0490506132978282612f40565b60019092019161323c565b606454600160a060020a031681565b60006132bc88613489565b805490915033600160a060020a0390811661010090920416146132de57600080fd5b6002815460ff1660028111156132f057fe5b146132fa57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613326600282018787615149565b50613335600382018585615149565b5080546001604060020a0380841660a860020a026000805160206153eb83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a361412c565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340a5780820151838201526020016133f2565b50505050905090810190601f1680156134375780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345557600080fd5b6102c65a03f1151561346657600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a357600080fd5b607a80546001604060020a0384169081106134ba57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134e957600080fd5b607b80546001604060020a0384169081106134ba57fe5b6000806000888a898989898960405180888051906020019060200280838360005b83811015613539578082015183820152602001613521565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a357fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561360d57809250613815565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161364d83826150a3565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136ce57fe5b9052919050815181556020820151816001019080516136f19291602001906151b7565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380957fe5b02179055505050508092505b5050979650505050505050565b6000806000613834600187878761421c565b9250846001604060020a0316866001604060020a0316141561385557612e50565b82151561386157612e50565b61386a866134cf565b9150613875856134cf565b82549091508390101561388757600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661421c565b60006138ed82613489565b600181015490915033600160a060020a03908116690100000000000000000090920416148061392e5750805433600160a060020a0390811661010090920416145b1515612dd057600080fd5b600080808080806001604060020a03871681901161395657600080fd5b61395f89611896565b985061396a896134cf565b955061397587613489565b94506000600387015460a060020a900460ff16600281111561399357fe5b1461399d57600080fd5b60028601546001604060020a038b811691161415613c98576000855460ff1660028111156139c757fe5b14156139dd576139d8898989614242565b613f99565b6002855460ff1660028111156139ef57fe5b1415613a00576139d889898961429c565b6001855460ff166002811115613a1257fe5b1415613c9657613b3e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a715790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6002811115613b3557fe5b905250886144da565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7157506001604060020a038414155b15613c7757600186015460001901841415613c5a576002860154600187018054613c4d926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd65790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613500565b92506139d889848a613822565b613c7189896001848a600101805490500303614540565b50613f99565b613c8989898860010180549050614540565b98506139d889898961464a565bfe5b613dbe8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3457602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf15790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613daa57fe5b6002811115613db557fe5b9052508b6144da565b6001604060020a0390811692508214613c96576000855460ff166002811115613de357fe5b1415613e145760028601546001604060020a03888116911614613e0257fe5b613c7189898860010180549050614540565b6001855460ff166002811115613e2657fe5b1415613f5d57613f138661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab457600091825260209182902080546001604060020a03168452908202830192909160089101808411613a71575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2a57fe5b6001604060020a039081169150811415613f3e57613c8989896001858a600101805490500303614540565b81811115613c5a57613c8989896001858a600101805490500303614540565b6002855460ff166002811115613f6f57fe5b1415613c9657613f8c89896001858a600101805490500303614540565b98506139d889898961477a565b50505050505050505050565b60035415613fb257600080fd5b612c4381614a8d565b4290565b600080806001604060020a0384161515613fdc5760009250614080565b613fe5846134cf565b6002810154909250613fff906001604060020a0316613489565b90506000815460ff16600281111561401357fe5b141561402157839250614080565b6002815460ff16600281111561403357fe5b1461403a57fe5b6002820154614051906001604060020a0316610e79565b151561405f57839250614080565b600282015461407d9060c060020a90046001604060020a0316613fbf565b92505b5050919050565b61408f615019565b6140a182600160a060020a0316614ad9565b92915050565b6000806002835160028111156140b957fe5b146140c057fe5b82606001516001604060020a031615156140dd5760019150610f15565b6140ea8360600151613489565b9050614111816101006040519081016040528154909190829060ff16600281111561205b57fe5b6001019392505050565b614123615019565b6140a182614ad9565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156141f857600080fd5b6102c65a03f1151561420957600080fd5b50505060405180519250829150505b5090565b8061422a8585808685614b20565b90506142398584868685614b20565b95945050505050565b60008061424e856134cf565b915061428f8360006040518059106142635750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613500565b9050610e69858286613822565b60008060006142aa866134cf565b925060146143d3846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116143075790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b60028111156143cb57fe5b905250614c88565b106143dd57600080fd5b6143e684610e79565b156143f057600080fd5b600283015460018401805461448d926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613500565b91506144cd846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613500565b9050612e50868287613822565b6000805b83602001515181101561452e57826001604060020a03168460200151828151811061450557fe5b906020019060200201516001604060020a0316141561452657809150614539565b6001016144de565b6001604060020a0391505b5092915050565b60008061454b615019565b6000614556876134cf565b600181015490935085900360405180591061456e5750595b90808252806020026020018201604052509150600090505b60018301548590038110156145f957600183018054829081106145a557fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106145da57fe5b6001604060020a03909216602092830290910190910152600101614586565b60028301546003840154614633916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613500565b9350614640878588613822565b5050509392505050565b6000614654615019565b600080614660876134cf565b6001810154909450600a901061467557600080fd5b600180850154016040518059106146895750595b90808252806020026020018201604052509250600091505b600184015482101561471457600184018054839081106146bd57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168383815181106146f257fe5b6001604060020a039092166020928302909101909101526001909101906146a1565b6001840154859084908151811061472757fe5b6001604060020a03928316602091820290920101526002850154600386015461476d92828116928792600092839260c060020a90041690600160a060020a031682613500565b9050611816878288613822565b600080614786856134cf565b91506014614871836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b1061487b57600080fd5b61488483610e79565b1561488e57600080fd5b600282015460018301805461428f926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561492157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116148de5790505b505050505085614a4c86610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156149c357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149805790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a3957fe5b6002811115614a4457fe5b905250614d9e565b6001604060020a0316614a5d613fbb565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613500565b614a95614e36565b600160a060020a0381161515614aaa57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614ae1615019565b6001604051805910614af05750595b908082528060200260200182016040525090508181600081518110614b1157fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b4757610100614b4a565b60005b61ffff169250849350614b5c886134cf565b60028101546003820154919350614b8e918b916001604060020a0316908a908a908890600160a060020a03168a614e50565b9350600090505b60018201546001604060020a0382161015614c2157614c178983600101836001604060020a0316815481101515614bc857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614e50565b9350600101614b95565b60028201546000604060020a9091046001604060020a03161115614c7c5760028201546003830154614c79918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614e50565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614ca85760009150610f15565b614cb58360a001516134cf565b9050614111816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561434a57600091825260209182902080546001604060020a03168452908202830192909160089101808411614307575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156143c057fe5b6000806000614db08460400151613489565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561408057614dfa84602001518281518110614deb57fe5b90602001906020020151613489565b80549092506001604060020a0380851660a860020a909204161115614e2e57815460a860020a90046001604060020a031692505b600101614dcb565b60035415614e4357600080fd5b614e4b615015565b600355565b80600080614e5d89613489565b600181015490915069010000000000000000009004600160a060020a031615801590614e895750600083115b15613815578915614f6157600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f3057600080fd5b6102c65a03f11515614f4157600080fd5b505050604051805192505082821115614f5957600080fd5b819250613815565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b1515614ff457600080fd5b6102c65a03f1151561500557600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b6101006040519081016040528060008152602001615047615019565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061526b565b8154818355818115116116835760040281600402836000526020600020918201910161168391906152d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061511057805160ff191683800117855561513d565b8280016001018555821561513d579182015b8281111561513d578251825591602001919060010190615122565b50614218929150615322565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061518a5782800160ff1982351617855561513d565b8280016001018555821561513d579182015b8281111561513d57823582559160200191906001019061519c565b8280548282559060005260206000209060030160049004810192821561525f5791602002820160005b8382111561522a57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026151e0565b801561525d5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261522a565b505b5061421892915061533c565b610f4591905b808211156142185780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006152bb6002830182615361565b6152c9600383016000615361565b50600401615271565b610f4591905b808211156142185760008082556152f260018301826153a5565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016152d8565b610f4591905b808211156142185760008155600101615328565b610f4591905b8082111561421857805467ffffffffffffffff19168155600101615342565b50805460018160011615610100020316600290046000825580601f106153875750612c43565b601f016020900490600052602060002090810190612c439190615322565b508054600082556003016004900490600052602060002090810190612c4391906153225600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058209bd3a2da23aed524036b0010149630eb92c52af987d14fabafe6710d300374e40029", - "sourceMap": "1113:10259:5:-;;;;;;;;;-1:-1:-1;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:478:11;;;;;;;;;;-1:-1:-1;;;;;11568:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;2117:319:7;;;;;;;;;;-1:-1:-1;;;;;2117:319:7;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4902:584:11;;;-1:-1:-1;;;;;4902:584:11;;;;;9918:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2465:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2465:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2465:606:11;;-1:-1:-1;;;2465:606:11;;-1:-1:-1;;;;;2465:606:11;;;;;-1:-1:-1;;;;;2465:606:11;;-1:-1:-1;2465:606:11;;-1:-1:-1;;2465:606:11;7545:896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:896:11;;;;;-1:-1:-1;;;;;7545:896:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2051:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2051:313:11;;;-1:-1:-1;;;;;2051:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6240:534:11;;;;;;;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3711:514:11;;;;;;;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10787:574:11;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9145:523:11;;;;;;;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11568:478:11:-;11642:4;11662:21;11686;11697:9;11686:10;:21::i;:::-;11662:45;-1:-1:-1;11737:21:11;11722:11;;;;:36;;;;;;;;;11718:79;;;11781:5;11774:12;;;;11718:79;11829:23;11814:11;;;;:38;;;;;;;;;11807:46;;;;11868:10;;;;-1:-1:-1;;;11868:10:11;;;;11864:52;;;11901:4;11894:11;;;;11864:52;11929:15;;;;-1:-1:-1;;;;;11929:15:11;:20;11925:63;;;11972:5;11965:12;;;;11925:63;12023:15;;;;12005:34;;-1:-1:-1;;;;;12023:15:11;12005:17;:34::i;:::-;11998:41;;11568:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;2117:319:7:-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;:::-;;2117:319;;:::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4902:584:11:-;5053:17;5095:21;5109:6;5095:13;:21::i;:::-;5087:30;;;;;;;;-1:-1:-1;5164:6:11;:13;;;;5189:254;;;;5164:6;5189:254;;:::i;:::-;;;;;;;;;;;;5214:219;;;;;;;;;5243:24;5214:219;;;;5285:10;-1:-1:-1;;;;;5214:219:11;;;;;5313:10;-1:-1:-1;;;;;5214:219:11;;;;;5341:1;-1:-1:-1;;;;;5214:219:11;;;;;5360:5;5214:219;;;;;;5383:6;-1:-1:-1;;;;;5214:219:11;;;;;5407:4;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:3;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5214:219:11;;;;-1:-1:-1;5189:254:11;;;-1:-1:-1;5189:254:11;;-1:-1:-1;;5189:254:11;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;-1:-1:-1;;;;;;5189:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;;;;;;;;;;5189:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5468:10;-1:-1:-1;;;;;5454:25:11;;;;;;;;;;;4902:584;;;;;;;;:::o;9918:101::-;9995:6;:13;-1:-1:-1;;9995:17:11;9918:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;2465:606:11:-;2633:14;2671:21;2685:6;2671:13;:21::i;:::-;2663:30;;;;;;;;-1:-1:-1;2737:6:11;:13;;;;2789:245;;;;2737:6;2789:245;;:::i;:::-;;;;;;;;;;;;2814:210;;;;;;;;;2843:21;2814:210;;-1:-1:-1;;;;;2814:210:11;;;;;;;-1:-1:-1;;;;;2814:210:11;;;;;;-1:-1:-1;2814:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2789:245;;-1:-1:-1;2789:245:11;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;-1:-1:-1;;;;;;2789:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;;;;;;;;;;2789:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3056:7;-1:-1:-1;;;;;3045:19:11;;;;;;;;;;;2465:606;;;;;;;:::o;7545:896::-;7755:16;7867:21;7796;7810:6;7796:13;:21::i;:::-;7788:30;;;;;;;;-1:-1:-1;;;;;7833:18:11;;;7829:250;;7891:25;7902:13;7891:10;:25::i;:::-;7867:49;;1096:2;8025:19;8042:1;8025:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8025:42:11;;8017:51;;;;;;8108:6;:13;;;-1:-1:-1;8108:13:11;8133:267;;;;8108:6;8133:267;;:::i;:::-;;;;;;;;;;;;8158:232;;;;;;;;;8187:23;8158:232;;;;8228:12;-1:-1:-1;;;;;8158:232:11;;;;;8258:10;-1:-1:-1;;;;;8158:232:11;;;;;8286:13;-1:-1:-1;;;;;8158:232:11;;;;;8317:5;8158:232;;;;;;8340:6;-1:-1:-1;;;;;8158:232:11;;;;;8364:4;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:3;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8158:232:11;;;;-1:-1:-1;8133:267:11;;;-1:-1:-1;8133:267:11;;-1:-1:-1;;8133:267:11;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;-1:-1:-1;;;;;;8133:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;;;;;;;;;;8133:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8424:9;-1:-1:-1;;;;;8411:23:11;;;;;;;;;;;7545:896;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2051:313:11:-;2199:14;2236:121;2258:10;2282:4;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:3;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2317:10;2341:6;2236:8;:121::i;:::-;2229:128;2051:313;-1:-1:-1;;;;;;;2051:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6240:534:11:-;6423:28;6454:22;6465:10;6454;:22::i;:::-;6508:13;;6423:53;;-1:-1:-1;6494:10:11;-1:-1:-1;;;;;6494:27:11;;;6508:13;;;;;6494:27;6486:36;;;;;;6562:24;6540:18;;;;:46;;;;;;;;;6532:55;;;;;;6597:23;;-1:-1:-1;;;;;;6597:23:11;;-1:-1:-1;;;;;6597:23:11;;;;;;6630;:13;;;6646:7;;6630:23;:::i;:::-;-1:-1:-1;6663:21:11;:12;;;6678:6;;6663:21;:::i;:::-;-1:-1:-1;6694:35:11;;-1:-1:-1;;;;;6694:35:11;;;-1:-1:-1;;;6694:35:11;-1:-1:-1;;;;;;;;;;;6694:35:11;;;;;;;;;6740:27;;;;;;;;;;;;6240:534;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3711:514:11:-;3888:25;3916:19;3927:7;3916:10;:19::i;:::-;3967:10;;3888:47;;-1:-1:-1;3953:10:11;-1:-1:-1;;;;;3953:24:11;;;3967:10;;;;;3953:24;3945:33;;;;;;4015:21;3996:15;;;;:40;;;;;;;;;3988:49;;;;;;4066:20;;-1:-1:-1;;;;;;4066:20:11;;-1:-1:-1;;;;;4066:20:11;;;;;;4096;:10;;;4109:7;;4096:20;:::i;:::-;-1:-1:-1;4126:18:11;:9;;;4138:6;;4126:18;:::i;:::-;-1:-1:-1;4154:32:11;;-1:-1:-1;;;;;4154:32:11;;;-1:-1:-1;;;4154:32:11;-1:-1:-1;;;;;;;;;;;4154:32:11;;;;;;;;;4197:21;;;;;;;;;;;;3711:514;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10787:574:11:-;10859:25;10894:12;10916:11;;:::i;:::-;10937:10;;:::i;:::-;10957:17;10984:20;11014:13;11037:14;11068:21;11092:19;11103:7;11092:10;:19::i;:::-;11133:11;;11184:6;;;;11177:13;;11133:11;;;;-1:-1:-1;11133:11:11;11161:6;;;;-1:-1:-1;;;;;11161:6:11;;-1:-1:-1;11133:11:11;;-1:-1:-1;11184:6:11;11133:11;11177:13;;;;;;-1:-1:-1;;11177:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11206:1;:5;;11200:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11234:12:11;;11272:15;;;;;10787:574;;;;-1:-1:-1;10787:574:11;;11200:11;;-1:-1:-1;;;11234:12:11;;;-1:-1:-1;;;;;11234:12:11;;;;-1:-1:-1;11272:15:11;;;-1:-1:-1;;;;;;11308:10:11;;;;;-1:-1:-1;11345:8:11;;;-1:-1:-1;;;;;11345:8:11;;-1:-1:-1;10787:574:11;-1:-1:-1;;10787:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9145:523:11:-;9326:27;9356:21;9367:9;9356:10;:21::i;:::-;9410:12;;9326:51;;-1:-1:-1;9396:10:11;-1:-1:-1;;;;;9396:26:11;;;9410:12;;;;;9396:26;9388:35;;;;;;9462:23;9441:17;;;;:44;;;;;;;;;9433:53;;;;;;9497:22;;-1:-1:-1;;;;;;9497:22:11;;-1:-1:-1;;;;;9497:22:11;;;;;;9529;:12;;;9544:7;;9529:22;:::i;:::-;-1:-1:-1;9561:20:11;:11;;;9575:6;;9561:20;:::i;:::-;-1:-1:-1;9591:34:11;;-1:-1:-1;;;;;9591:34:11;;;-1:-1:-1;;;9591:34:11;-1:-1:-1;;;;;;;;;;;9591:34:11;;;;;;;;;9636:25;;;;;;;;;;;;9145:523;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12284:161:11:-;12392:6;:13;12343:11;;-1:-1:-1;;;;;12382:23:11;;;12374:32;;;;;;12423:6;:15;;-1:-1:-1;;;;;12423:15:11;;;;;;;;;;;;;;;;;;;12416:22;;12284:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;25384:76:7:-;25450:3;25384:76;:::o;18983:583::-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12661:316:11:-;12724:6;;12764:23;12749:1;:11;:38;;;;;;;;;12742:46;;;;12803:1;:15;;;-1:-1:-1;;;;;12803:20:11;;12799:60;;;12846:1;12839:9;;;;12799:60;12898:27;12909:1;:15;;;12898:10;:27::i;:::-;12869:56;;12942:24;12959:6;12942:24;;;;;;;;;;;;;;;;;;;;;;;;;12969:1;12942:28;;12661:316;-1:-1:-1;;;12661:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;487:96:26;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;767:94:26:-;842:12;767:94;:::o;1113:10259:5:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1113:10259:5;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + "object": "6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029", + "sourceMap": "1113:10259:5:-;;;;;;;;;-1:-1:-1;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11679:478:11;;;;;;;;;;-1:-1:-1;;;;;11679:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;2117:319:7;;;;;;;;;;-1:-1:-1;;;;;2117:319:7;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4987:589:11;;;-1:-1:-1;;;;;4987:589:11;;;;;10029:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2537:611:11;;;;;;;;;;;;;-1:-1:-1;;;;;2537:611:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2537:611:11;;-1:-1:-1;;;2537:611:11;;-1:-1:-1;;;;;2537:611:11;;;;;-1:-1:-1;;;;;2537:611:11;;-1:-1:-1;2537:611:11;;-1:-1:-1;;2537:611:11;7643:901;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7643:901:11;;;;;-1:-1:-1;;;;;7643:901:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2123:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2123:313:11;;;-1:-1:-1;;;;;2123:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6330:542:11;;;;;;;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3788:522:11;;;;;;;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10898:574:11;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9248:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11679:478:11:-;11753:4;11773:21;11797;11808:9;11797:10;:21::i;:::-;11773:45;-1:-1:-1;11848:21:11;11833:11;;;;:36;;;;;;;;;11829:79;;;11892:5;11885:12;;;;11829:79;11940:23;11925:11;;;;:38;;;;;;;;;11918:46;;;;11979:10;;;;-1:-1:-1;;;11979:10:11;;;;11975:52;;;12012:4;12005:11;;;;11975:52;12040:15;;;;-1:-1:-1;;;;;12040:15:11;:20;12036:63;;;12083:5;12076:12;;;;12036:63;12134:15;;;;12116:34;;-1:-1:-1;;;;;12134:15:11;12116:17;:34::i;:::-;12109:41;;11679:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;2117:319:7:-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;:::-;;2117:319;;:::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4987:589:11:-;5138:17;5180:21;5194:6;5180:13;:21::i;:::-;5172:30;;;;;;;;-1:-1:-1;5249:6:11;:13;;;;5274:254;;;;5249:6;5274:254;;:::i;:::-;;;;;;;;;;;;5299:219;;;;;;;;;5328:24;5299:219;;;;5370:10;-1:-1:-1;;;;;5299:219:11;;;;;5398:10;-1:-1:-1;;;;;5299:219:11;;;;;5426:1;-1:-1:-1;;;;;5299:219:11;;;;;5445:5;5299:219;;;;;;5468:6;-1:-1:-1;;;;;5299:219:11;;;;;5492:4;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:3;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5299:219:11;;;;-1:-1:-1;5274:254:11;;;-1:-1:-1;5274:254:11;;-1:-1:-1;;5274:254:11;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;-1:-1:-1;;;;;;5274:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;;;;;;;;;;5274:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5553:10;-1:-1:-1;;;;;5539:30:11;;5565:3;;5539:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:589;;;;;;;;:::o;10029:101::-;10106:6;:13;-1:-1:-1;;10106:17:11;10029:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;2537:611:11:-;2705:14;2743:21;2757:6;2743:13;:21::i;:::-;2735:30;;;;;;;;-1:-1:-1;2809:6:11;:13;;;;2861:245;;;;2809:6;2861:245;;:::i;:::-;;;;;;;;;;;;2886:210;;;;;;;;;2915:21;2886:210;;-1:-1:-1;;;;;2886:210:11;;;;;;;-1:-1:-1;;;;;2886:210:11;;;;;;-1:-1:-1;2886:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:245;;-1:-1:-1;2861:245:11;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;-1:-1:-1;;;;;;2861:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;;;;;;;;;;2861:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3128:7;-1:-1:-1;;;;;3117:24:11;;3137:3;3117:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2537:611:11;;;;;;;:::o;7643:901::-;7853:16;7965:21;7894;7908:6;7894:13;:21::i;:::-;7886:30;;;;;;;;-1:-1:-1;;;;;7931:18:11;;;7927:250;;7989:25;8000:13;7989:10;:25::i;:::-;7965:49;;1096:2;8123:19;8140:1;8123:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8123:42:11;;8115:51;;;;;;8206:6;:13;;;-1:-1:-1;8206:13:11;8231:267;;;;8206:6;8231:267;;:::i;:::-;;;;;;;;;;;;8256:232;;;;;;;;;8285:23;8256:232;;;;8326:12;-1:-1:-1;;;;;8256:232:11;;;;;8356:10;-1:-1:-1;;;;;8256:232:11;;;;;8384:13;-1:-1:-1;;;;;8256:232:11;;;;;8415:5;8256:232;;;;;;8438:6;-1:-1:-1;;;;;8256:232:11;;;;;8462:4;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8484:3;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8256:232:11;;;;-1:-1:-1;8231:267:11;;;-1:-1:-1;8231:267:11;;-1:-1:-1;;8231:267:11;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;-1:-1:-1;;;;;;8231:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;;;;;;;;;;8231:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8522:9;-1:-1:-1;;;;;8509:28:11;;8533:3;;8509:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:901;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2123:313:11:-;2271:14;2308:121;2330:10;2354:4;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:3;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:10;2413:6;2308:8;:121::i;:::-;2301:128;2123:313;-1:-1:-1;;;;;;;2123:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6330:542:11:-;6513:28;6544:22;6555:10;6544;:22::i;:::-;6598:13;;6513:53;;-1:-1:-1;6584:10:11;-1:-1:-1;;;;;6584:27:11;;;6598:13;;;;;6584:27;6576:36;;;;;;6652:24;6630:18;;;;:46;;;;;;;;;6622:55;;;;;;6687:23;;-1:-1:-1;;;;;;6687:23:11;;-1:-1:-1;;;;;6687:23:11;;;;;;6720;:13;;;6736:7;;6720:23;:::i;:::-;-1:-1:-1;6753:21:11;:12;;;6768:6;;6753:21;:::i;:::-;-1:-1:-1;6784:35:11;;-1:-1:-1;;;;;6784:35:11;;;-1:-1:-1;;;6784:35:11;-1:-1:-1;;;;;;;;;;;6784:35:11;;;;;;;;;6830;;;6858:6;;6830:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:542;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3788:522:11:-;3965:25;3993:19;4004:7;3993:10;:19::i;:::-;4044:10;;3965:47;;-1:-1:-1;4030:10:11;-1:-1:-1;;;;;4030:24:11;;;4044:10;;;;;4030:24;4022:33;;;;;;4092:21;4073:15;;;;:40;;;;;;;;;4065:49;;;;;;4143:20;;-1:-1:-1;;;;;;4143:20:11;;-1:-1:-1;;;;;4143:20:11;;;;;;4173;:10;;;4186:7;;4173:20;:::i;:::-;-1:-1:-1;4203:18:11;:9;;;4215:6;;4203:18;:::i;:::-;-1:-1:-1;4231:32:11;;-1:-1:-1;;;;;4231:32:11;;;-1:-1:-1;;;4231:32:11;-1:-1:-1;;;;;;;;;;;4231:32:11;;;;;;;;;4274:29;;;4296:6;;4274:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3788:522;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10898:574:11:-;10970:25;11005:12;11027:11;;:::i;:::-;11048:10;;:::i;:::-;11068:17;11095:20;11125:13;11148:14;11179:21;11203:19;11214:7;11203:10;:19::i;:::-;11244:11;;11295:6;;;;11288:13;;11244:11;;;;-1:-1:-1;11244:11:11;11272:6;;;;-1:-1:-1;;;;;11272:6:11;;-1:-1:-1;11244:11:11;;-1:-1:-1;11295:6:11;11244:11;11288:13;;;;;;-1:-1:-1;;11288:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:1;:5;;11311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11345:12:11;;11383:15;;;;;10898:574;;;;-1:-1:-1;10898:574:11;;11311:11;;-1:-1:-1;;;11345:12:11;;;-1:-1:-1;;;;;11345:12:11;;;;-1:-1:-1;11383:15:11;;;-1:-1:-1;;;;;;11419:10:11;;;;;-1:-1:-1;11456:8:11;;;-1:-1:-1;;;;;11456:8:11;;-1:-1:-1;10898:574:11;-1:-1:-1;;10898:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9248:531:11:-;9429:27;9459:21;9470:9;9459:10;:21::i;:::-;9513:12;;9429:51;;-1:-1:-1;9499:10:11;-1:-1:-1;;;;;9499:26:11;;;9513:12;;;;;9499:26;9491:35;;;;;;9565:23;9544:17;;;;:44;;;;;;;;;9536:53;;;;;;9600:22;;-1:-1:-1;;;;;;9600:22:11;;-1:-1:-1;;;;;9600:22:11;;;;;;9632;:12;;;9647:7;;9632:22;:::i;:::-;-1:-1:-1;9664:20:11;:11;;;9678:6;;9664:20;:::i;:::-;-1:-1:-1;9694:34:11;;-1:-1:-1;;;;;9694:34:11;;;-1:-1:-1;;;9694:34:11;-1:-1:-1;;;;;;;;;;;9694:34:11;;;;;;;;;9739:33;;;9765:6;;9739:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12395:161:11:-;12503:6;:13;12454:11;;-1:-1:-1;;;;;12493:23:11;;;12485:32;;;;;;12534:6;:15;;-1:-1:-1;;;;;12534:15:11;;;;;;;;;;;;;;;;;;;12527:22;;12395:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;25384:76:7:-;25450:3;25384:76;:::o;18983:583::-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12772:316:11:-;12835:6;;12875:23;12860:1;:11;:38;;;;;;;;;12853:46;;;;12914:1;:15;;;-1:-1:-1;;;;;12914:20:11;;12910:60;;;12957:1;12950:9;;;;12910:60;13009:27;13020:1;:15;;;13009:10;:27::i;:::-;12980:56;;13053:24;13070:6;13053:24;;;;;;;;;;;;;;;;;;;;;;;;;13080:1;13053:28;;12772:316;-1:-1:-1;;;12772:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;487:96:26;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;767:94:26:-;842:12;767:94;:::o;1113:10259:5:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1113:10259:5;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" }, "gasEstimates": { "creation": { - "codeDepositCost": "4311600", + "codeDepositCost": "4366400", "executionCost": "infinite", "totalCost": "infinite" }, @@ -4302,6 +4332,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverAdded", @@ -4314,6 +4349,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverUpdated", @@ -4326,6 +4366,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateAdded", @@ -4338,6 +4383,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateUpdated", @@ -4350,6 +4400,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectAdded", @@ -4362,6 +4417,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectUpdated", @@ -5754,6 +5814,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverAdded", @@ -5766,6 +5831,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverUpdated", @@ -5778,6 +5848,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateAdded", @@ -5790,6 +5865,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateUpdated", @@ -5802,6 +5882,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectAdded", @@ -5814,6 +5899,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectUpdated", @@ -6038,17 +6128,17 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005586833981016040528080519150819050806200004d8164010000000062004e556200005682021704565b505050620000d5565b6200006e64010000000062005066620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005080620000d182021704565b600355565b4390565b6154a180620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029", + "object": "6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005698833981016040528080519150819050806200004d8164010000000062004f676200005682021704565b505050620000d5565b6200006e64010000000062005178620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005192620000d182021704565b600355565b4390565b6155b380620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029", "sourceMap": "1086:946:8:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1167:115:8;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1167:115:8;;-1:-1:-1;1167:115:8;1809:30:0;1167:115:8;1809:5:0;;;;;;:30;:::i;:::-;1737:109;1166::5;1167:115:8;1086:946;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1086:946:8:-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611cea565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611cf495505050505050565b341561067b57600080fd5b610301611d5f565b341561068e57600080fd5b6102a6600160a060020a0360043516611d93565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611df4565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e05915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516611ffb565b34156107e657600080fd5b6102a66001604060020a0360043516612487565b341561080557600080fd5b6102a6600160a060020a03600435166124f1565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612569565b341561086657600080fd5b6103016125e5565b341561087957600080fd5b610301600160a060020a03600435166125eb565b341561089857600080fd5b6102bb600160a060020a036004351661266d565b34156108b757600080fd5b61030161268c565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061269295505050505050565b341561091957600080fd5b6103016126fd565b341561092c57600080fd5b610301612779565b341561093f57600080fd5b6102a6600160a060020a036004351661277f565b341561095e57600080fd5b6102bb60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506129d595505050505050565b34156109c157600080fd5b6102a6600435612b13565b34156109d757600080fd5b6102a66001604060020a0360043516602435612b18565b34156109f957600080fd5b610301612bad565b3415610a0c57600080fd5b6102a6600435612be1565b3415610a2257600080fd5b6102a6600160a060020a0360043516612c39565b3415610a4157600080fd5b6102a6600435612c49565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612cb8565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612da095505050505050565b3415610af257600080fd5b610afa612dd7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612de6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612e5b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435612f43565b3415610bf757600080fd5b610c0b6001604060020a036004351661306b565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061323a95505050505050565b3415610d9c57600080fd5b610afa6132a5565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166132b4565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061339c95505050505050565b3415610e4c57600080fd5b610afa613478565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e05565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361348c565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206154368339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846134d2565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613503565b90506110b5848285613825565b50505050565b6000806110c6615084565b6000806110d2876134d2565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561348c565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615436833981519152815260130160405180910390206112343382600060405180591061121e5750595b90808252806020026020018201604052506129d5565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612c49565b600190910190611244565b604051600080516020615436833981519152815260130160405180910390206112c53382600060405180591061121e57505990808252806020026020018201604052506129d5565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f7615096565b6113008a6134d2565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856134d2565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166138e5565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613503565b915061158d858386613825565b60028301546115a4906001604060020a031661348c565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846138e5565b6110b58484848461393c565b6003541561166957600080fd5b6116738282613fa8565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761348c565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613503565b91506117b6826134d2565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a36118098783868961393c565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b611870836125eb565b6000908152607d602052604090205460ff169392505050565b600080600080611898856134d2565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a031661190061400e565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050611a3685828560000154613825565b809450611a42856134d2565b92505b611a4e85614014565b90506001604060020a0380821690861614611a7257611a7285828560000154613825565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826150e2565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b92916020019061510e565b5060e082015181600301908051611ca692916020019061510e565b50505050806001604060020a03167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d1657fe5b90602001906020020151169150604060020a848481518110611d3457fe5b90602001906020020151811515611d4757fe5b049050611d548282611460565b600190920191611cf9565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061543683398151915281526013016040518091039020611dbb826140dc565b611dc63383836129d5565b1515611dd157600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e0083338484610e54565b505050565b6000611e1082611812565b1515611e1b57600080fd5b50607a8054908160018101611e3083826150e2565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ead57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611f9e92916020019061510e565b5060e082015181600301908051611fb992916020019061510e565b50505050806001604060020a03167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b60008061200783611812565b151561201257600080fd5b6001604060020a0385161561222f5761202a8561348c565b9050601461221c826101006040519081016040528154909190829060ff16600281111561205357fe5b600281111561205e57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561216c5780601f106121415761010080835404028352916020019161216c565b820191906000526020600020905b81548152906001019060200180831161214f57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561220e5780601f106121e35761010080835404028352916020019161220e565b820191906000526020600020905b8154815290600101906020018083116121f157829003601f168201915b5050505050815250506140fc565b6001604060020a03161061222f57600080fd5b607a80549250826001810161224483826150e2565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561233457fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615456833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161242592916020019061510e565b5060e08201518160030190805161244092916020019061510e565b50505050816001604060020a03167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60006124928261348c565b905061249d826138e5565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615436833981519152815260130160405180910390206125393382600060405180591061121e57505990808252806020026020018201604052506129d5565b151561254457600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006125da3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e05565b979650505050505050565b60015481565b60006125f5615084565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126395780518252601f19909201916020918201910161261a565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a038484815181106126b457fe5b90602001906020020151169150604060020a8484815181106126d257fe5b906020019060200201518115156126e557fe5b0490506126f28282610f87565b600190920191612697565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206127bc846140dc565b6127c73383836129d5565b15156127d257600080fd5b600160a060020a03851660009081526065602052604090205460ff16156127f857600080fd5b600160a060020a038516151561288a57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561284157600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156128e457600080fd5b6102c65a03f115156128f557600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561296457600080fd5b6102c65a03f1151561297557600080fd5b50505060405180519050151561298a57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b60006129df615084565b600080845111156129f857835160200290508391508082525b600054600160a060020a03161580612b09575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612a9f578082015183820152602001612a87565b50505050905090810190601f168015612acc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612aed57600080fd5b6102c65a03f11515612afe57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612b2484611889565b9350612b2f846134d2565b600281015490925060c060020a90046001604060020a03161515612b5257600080fd5b6000600383015460a060020a900460ff166002811115612b6e57fe5b14612b7857600080fd5b6002820154612b8f906001604060020a03166138e5565b60028201546110a89060c060020a90046001604060020a0316614014565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061543683398151915281526013016040518091039020612c0982614170565b612c143383836129d5565b1515612c1f57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061543683398151915281526013016040518091039020612c913382600060405180591061121e57505990808252806020026020018201604052506129d5565b1515612c9c57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612cc38861348c565b805490915033600160a060020a039081166101009092041614612ce557600080fd5b6001815460ff166002811115612cf757fe5b14612d0157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612d2d600282018787615188565b50612d3c600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b60005b8151811015612dd357612dca828281518110612dbb57fe5b90602001906020020151611889565b50600101612da3565b5050565b600054600160a060020a031681565b600080805b8451831015612e53576001604060020a03858481518110612e0857fe5b90602001906020020151169150604060020a858481518110612e2657fe5b90602001906020020151811515612e3957fe5b049050612e4886838387611647565b600190920191612deb565b505050505050565b6000612e668861348c565b805490915033600160a060020a039081166101009092041614612e8857600080fd5b6000815460ff166002811115612e9a57fe5b14612ea457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ed0600282018787615188565b50612edf600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b607f54600090819033600160a060020a039081166101009092041614612f6857600080fd5b612f71846134d2565b91506001600383015460a060020a900460ff166002811115612f8f57fe5b14612f9957600080fd5b6002820154600183018054613060926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561302c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411612fe95790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b90506110a881611889565b600080613076615084565b61307e615084565b600080600080600061308f8a61348c565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156131445780601f1061311957610100808354040283529160200191613144565b820191906000526020600020905b81548152906001019060200180831161312757829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131e35780601f106131b8576101008083540402835291602001916131e3565b820191906000526020600020905b8154815290600101906020018083116131c657829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061325c57fe5b90602001906020020151169150604060020a84848151811061327a57fe5b9060200190602002015181151561328d57fe5b04905061329a8282612f43565b60019092019161323f565b606454600160a060020a031681565b60006132bf8861348c565b805490915033600160a060020a0390811661010090920416146132e157600080fd5b6002815460ff1660028111156132f357fe5b146132fd57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155613329600282018787615188565b50613338600382018585615188565b5080546001604060020a0380841660a860020a0260008051602061545683398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b60006133a6614181565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561340d5780820151838201526020016133f5565b50505050905090810190601f16801561343a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561345857600080fd5b6102c65a03f1151561346957600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106134a657600080fd5b607a80546001604060020a0384169081106134bd57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106134ec57600080fd5b607b80546001604060020a0384169081106134bd57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561353c578082015183820152602001613524565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156135a657fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561361057809250613818565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161365083826151f6565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156136d157fe5b9052919050815181556020820151816001019080516136f4929160200190615222565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561380c57fe5b02179055505050508092505b5050979650505050505050565b60008060006138376001878787614271565b9250846001604060020a0316866001604060020a0316141561385857612e53565b82151561386457612e53565b61386d866134d2565b9150613878856134d2565b82549091508390101561388a57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614271565b60006138f08261348c565b600181015490915033600160a060020a0390811669010000000000000000009092041614806139315750805433600160a060020a0390811661010090920416145b1515612dd357600080fd5b600080808080806001604060020a03871681901161395957600080fd5b61396289611889565b985061396d896134d2565b95506139788761348c565b94506000600387015460a060020a900460ff16600281111561399657fe5b146139a057600080fd5b60028601546001604060020a038b811691161415613c9b576000855460ff1660028111156139ca57fe5b14156139e0576139db898989614297565b613f9c565b6002855460ff1660028111156139f257fe5b1415613a03576139db8989896142f1565b6001855460ff166002811115613a1557fe5b1415613c9957613b418661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613a745790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6002811115613b3857fe5b9052508861452f565b60028701546001604060020a0391821695506000604060020a909104909116118015613b7457506001604060020a038414155b15613c7a57600186015460001901841415613c5d576002860154600187018054613c50926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613c1c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613bd95790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613503565b92506139db89848a613825565b613c7489896001848a600101805490500303614595565b50613f9c565b613c8c89898860010180549050614595565b98506139db89898961469f565bfe5b613dc18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613d3757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613cf45790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613dad57fe5b6002811115613db857fe5b9052508b61452f565b6001604060020a0390811692508214613c99576000855460ff166002811115613de657fe5b1415613e175760028601546001604060020a03888116911614613e0557fe5b613c7489898860010180549050614595565b6001855460ff166002811115613e2957fe5b1415613f6057613f168661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613ab757600091825260209182902080546001604060020a03168452908202830192909160089101808411613a74575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613b2d57fe5b6001604060020a039081169150811415613f4157613c8c89896001858a600101805490500303614595565b81811115613c5d57613c8c89896001858a600101805490500303614595565b6002855460ff166002811115613f7257fe5b1415613c9957613f8f89896001858a600101805490500303614595565b98506139db8989896147cf565b50505050505050505050565b60035415613fb557600080fd5b613fbe81614ae2565b600160a060020a0382161515613fd357600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614000607a826150e2565b506001611e00607b826151f6565b60b25490565b600080806001604060020a038416151561403157600092506140d5565b61403a846134d2565b6002810154909250614054906001604060020a031661348c565b90506000815460ff16600281111561406857fe5b1415614076578392506140d5565b6002815460ff16600281111561408857fe5b1461408f57fe5b60028201546140a6906001604060020a0316610eb8565b15156140b4578392506140d5565b60028201546140d29060c060020a90046001604060020a0316614014565b92505b5050919050565b6140e4615084565b6140f682600160a060020a0316614af8565b92915050565b60008060028351600281111561410e57fe5b1461411557fe5b82606001516001604060020a031615156141325760019150610f54565b61413f836060015161348c565b9050614166816101006040519081016040528154909190829060ff16600281111561205357fe5b6001019392505050565b614178615084565b6140f682614af8565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561424d57600080fd5b6102c65a03f1151561425e57600080fd5b50505060405180519250829150505b5090565b8061427f8585808685614b3f565b905061428e8584868685614b3f565b95945050505050565b6000806142a3856134d2565b91506142e48360006040518059106142b85750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613503565b9050610ea8858286613825565b60008060006142ff866134d2565b92506014614428846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161435c5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b600281111561442057fe5b905250614ca7565b1061443257600080fd5b61443b84610eb8565b1561444557600080fd5b60028301546001840180546144e2926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613503565b91506145228460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613503565b9050612e53868287613825565b6000805b83602001515181101561458357826001604060020a03168460200151828151811061455a57fe5b906020019060200201516001604060020a0316141561457b5780915061458e565b600101614533565b6001604060020a0391505b5092915050565b6000806145a0615084565b60006145ab876134d2565b60018101549093508590036040518059106145c35750595b90808252806020026020018201604052509150600090505b600183015485900381101561464e57600183018054829081106145fa57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061462f57fe5b6001604060020a039092166020928302909101909101526001016145db565b60028301546003840154614688916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613503565b9350614695878588613825565b5050509392505050565b60006146a9615084565b6000806146b5876134d2565b6001810154909450600a90106146ca57600080fd5b600180850154016040518059106146de5750595b90808252806020026020018201604052509250600091505b6001840154821015614769576001840180548390811061471257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061474757fe5b6001604060020a039092166020928302909101909101526001909101906146f6565b6001840154859084908151811061477c57fe5b6001604060020a0392831660209182029092010152600285015460038601546147c292828116928792600092839260c060020a90041690600160a060020a031682613503565b9050611809878288613825565b6000806147db856134d2565b915060146148c6836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b106148d057600080fd5b6148d983610eb8565b156148e357600080fd5b60028201546001830180546142e4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561497657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149335790505b505050505085614aa18661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a1857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149d55790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614a8e57fe5b6002811115614a9957fe5b905250614dbd565b6001604060020a0316614ab261400e565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613503565b60035415614aef57600080fd5b612c4681614e55565b614b00615084565b6001604051805910614b0f5750595b908082528060200260200182016040525090508181600081518110614b3057fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614b6657610100614b69565b60005b61ffff169250849350614b7b886134d2565b60028101546003820154919350614bad918b916001604060020a0316908a908a908890600160a060020a03168a614ea1565b9350600090505b60018201546001604060020a0382161015614c4057614c368983600101836001604060020a0316815481101515614be757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614ea1565b9350600101614bb4565b60028201546000604060020a9091046001604060020a03161115614c9b5760028201546003830154614c98918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614ea1565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614cc75760009150610f54565b614cd48360a001516134d2565b9050614166816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561439f57600091825260209182902080546001604060020a0316845290820283019290916008910180841161435c575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561441557fe5b6000806000614dcf846040015161348c565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156140d557614e1984602001518281518110614e0a57fe5b9060200190602002015161348c565b80549092506001604060020a0380851660a860020a909204161115614e4d57815460a860020a90046001604060020a031692505b600101614dea565b614e5d615066565b600160a060020a0381161515614e7257600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614eae8961348c565b600181015490915069010000000000000000009004600160a060020a031615801590614eda5750600083115b15613818578915614fb257600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b1515614f8157600080fd5b6102c65a03f11515614f9257600080fd5b505050604051805192505082821115614faa57600080fd5b819250613818565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561504557600080fd5b6102c65a03f1151561505657600080fd5b5050505050979650505050505050565b6003541561507357600080fd5b61507b615080565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016150b2615084565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e0057600402816004028360005260206000209182019101611e0091906152d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061514f57805160ff191683800117855561517c565b8280016001018555821561517c579182015b8281111561517c578251825591602001919060010190615161565b5061426d92915061533d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106151c95782800160ff1982351617855561517c565b8280016001018555821561517c579182015b8281111561517c5782358255916020019190600101906151db565b815481835581811511611e0057600402816004028360005260206000209182019101611e009190615357565b828054828255906000526020600020906003016004900481019282156152ca5791602002820160005b8382111561529557835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261524b565b80156152c85782816101000a8154906001604060020a030219169055600801602081600701049283019260010302615295565b505b5061426d9291506153a7565b610f8491905b8082111561426d5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061532660028301826153cc565b6153346003830160006153cc565b506004016152dc565b610f8491905b8082111561426d5760008155600101615343565b610f8491905b8082111561426d5760008082556153776001830182615410565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161535d565b610f8491905b8082111561426d57805467ffffffffffffffff191681556001016153ad565b50805460018160011615610100020316600290046000825580601f106153f25750612c46565b601f016020900490600052602060002090810190612c46919061533d565b508054600082556003016004900490600052602060002090810190612c46919061533d5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a723058208e61bfb27d60a9369e9723269ab9ef13e874bd08b18585cf6ff5d3cc18b030f70029", - "sourceMap": "1086:946:8:-;;;;;;;;;-1:-1:-1;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359:5;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:478:11;;;;;;;;;;-1:-1:-1;;;;;11568:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;1427:176:8;;;;;;;;;;-1:-1:-1;;;;;1427:176:8;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4902:584:11;;;-1:-1:-1;;;;;4902:584:11;;;;;9918:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2465:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2465:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2465:606:11;;-1:-1:-1;;;2465:606:11;;-1:-1:-1;;;;;2465:606:11;;;;;-1:-1:-1;;;;;2465:606:11;;-1:-1:-1;2465:606:11;;-1:-1:-1;;2465:606:11;7545:896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:896:11;;;;;-1:-1:-1;;;;;7545:896:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2051:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2051:313:11;;;-1:-1:-1;;;;;2051:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;1139:21:8;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1960:70:8;;;;;;;;;;;;;;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6240:534:11;;;;;;;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3711:514:11;;;;;;;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10787:574:11;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9145:523:11;;;;;;;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11568:478:11:-;11642:4;11662:21;11686;11697:9;11686:10;:21::i;:::-;11662:45;-1:-1:-1;11737:21:11;11722:11;;;;:36;;;;;;;;;11718:79;;;11781:5;11774:12;;;;11718:79;11829:23;11814:11;;;;:38;;;;;;;;;11807:46;;;;11868:10;;;;-1:-1:-1;;;11868:10:11;;;;11864:52;;;11901:4;11894:11;;;;11864:52;11929:15;;;;-1:-1:-1;;;;;11929:15:11;:20;11925:63;;;11972:5;11965:12;;;;11925:63;12023:15;;;;12005:34;;-1:-1:-1;;;;;12023:15:11;12005:17;:34::i;:::-;11998:41;;11568:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;1427:176:8:-;140:19:26;;:24;132:33;;;;;;1522:49:8;1539:6;1547:23;1522:16;:49::i;:::-;-1:-1:-1;;1593:3:8;1581:9;:15;1427:176::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4902:584:11:-;5053:17;5095:21;5109:6;5095:13;:21::i;:::-;5087:30;;;;;;;;-1:-1:-1;5164:6:11;:13;;;;5189:254;;;;5164:6;5189:254;;:::i;:::-;;;;;;;;;;;;5214:219;;;;;;;;;5243:24;5214:219;;;;5285:10;-1:-1:-1;;;;;5214:219:11;;;;;5313:10;-1:-1:-1;;;;;5214:219:11;;;;;5341:1;-1:-1:-1;;;;;5214:219:11;;;;;5360:5;5214:219;;;;;;5383:6;-1:-1:-1;;;;;5214:219:11;;;;;5407:4;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:3;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5214:219:11;;;;-1:-1:-1;5189:254:11;;;-1:-1:-1;5189:254:11;;-1:-1:-1;;5189:254:11;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;-1:-1:-1;;;;;;5189:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;;;;;;;;;;5189:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5468:10;-1:-1:-1;;;;;5454:25:11;;;;;;;;;;;4902:584;;;;;;;;:::o;9918:101::-;9995:6;:13;-1:-1:-1;;9995:17:11;9918:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;:::-;1281:166;;;:::o;2465:606:11:-;2633:14;2671:21;2685:6;2671:13;:21::i;:::-;2663:30;;;;;;;;-1:-1:-1;2737:6:11;:13;;;;2789:245;;;;2737:6;2789:245;;:::i;:::-;;;;;;;;;;;;2814:210;;;;;;;;;2843:21;2814:210;;-1:-1:-1;;;;;2814:210:11;;;;;;;-1:-1:-1;;;;;2814:210:11;;;;;;-1:-1:-1;2814:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2789:245;;-1:-1:-1;2789:245:11;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;-1:-1:-1;;;;;;2789:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;;;;;;;;;;2789:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3056:7;-1:-1:-1;;;;;3045:19:11;;;;;;;;;;;2465:606;;;;;;;:::o;7545:896::-;7755:16;7867:21;7796;7810:6;7796:13;:21::i;:::-;7788:30;;;;;;;;-1:-1:-1;;;;;7833:18:11;;;7829:250;;7891:25;7902:13;7891:10;:25::i;:::-;7867:49;;1096:2;8025:19;8042:1;8025:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8025:42:11;;8017:51;;;;;;8108:6;:13;;;-1:-1:-1;8108:13:11;8133:267;;;;8108:6;8133:267;;:::i;:::-;;;;;;;;;;;;8158:232;;;;;;;;;8187:23;8158:232;;;;8228:12;-1:-1:-1;;;;;8158:232:11;;;;;8258:10;-1:-1:-1;;;;;8158:232:11;;;;;8286:13;-1:-1:-1;;;;;8158:232:11;;;;;8317:5;8158:232;;;;;;8340:6;-1:-1:-1;;;;;8158:232:11;;;;;8364:4;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:3;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8158:232:11;;;;-1:-1:-1;8133:267:11;;;-1:-1:-1;8133:267:11;;-1:-1:-1;;8133:267:11;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;-1:-1:-1;;;;;;8133:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;;;;;;;;;;8133:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8424:9;-1:-1:-1;;;;;8411:23:11;;;;;;;;;;;7545:896;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2051:313:11:-;2199:14;2236:121;2258:10;2282:4;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:3;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2317:10;2341:6;2236:8;:121::i;:::-;2229:128;2051:313;-1:-1:-1;;;;;;;2051:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;1139:21:8:-;;;;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1960:70:8:-;2009:9;:14;1960:70::o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6240:534:11:-;6423:28;6454:22;6465:10;6454;:22::i;:::-;6508:13;;6423:53;;-1:-1:-1;6494:10:11;-1:-1:-1;;;;;6494:27:11;;;6508:13;;;;;6494:27;6486:36;;;;;;6562:24;6540:18;;;;:46;;;;;;;;;6532:55;;;;;;6597:23;;-1:-1:-1;;;;;;6597:23:11;;-1:-1:-1;;;;;6597:23:11;;;;;;6630;:13;;;6646:7;;6630:23;:::i;:::-;-1:-1:-1;6663:21:11;:12;;;6678:6;;6663:21;:::i;:::-;-1:-1:-1;6694:35:11;;-1:-1:-1;;;;;6694:35:11;;;-1:-1:-1;;;6694:35:11;-1:-1:-1;;;;;;;;;;;6694:35:11;;;;;;;;;6740:27;;;;;;;;;;;;6240:534;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3711:514:11:-;3888:25;3916:19;3927:7;3916:10;:19::i;:::-;3967:10;;3888:47;;-1:-1:-1;3953:10:11;-1:-1:-1;;;;;3953:24:11;;;3967:10;;;;;3953:24;3945:33;;;;;;4015:21;3996:15;;;;:40;;;;;;;;;3988:49;;;;;;4066:20;;-1:-1:-1;;;;;;4066:20:11;;-1:-1:-1;;;;;4066:20:11;;;;;;4096;:10;;;4109:7;;4096:20;:::i;:::-;-1:-1:-1;4126:18:11;:9;;;4138:6;;4126:18;:::i;:::-;-1:-1:-1;4154:32:11;;-1:-1:-1;;;;;4154:32:11;;;-1:-1:-1;;;4154:32:11;-1:-1:-1;;;;;;;;;;;4154:32:11;;;;;;;;;4197:21;;;;;;;;;;;;3711:514;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10787:574:11:-;10859:25;10894:12;10916:11;;:::i;:::-;10937:10;;:::i;:::-;10957:17;10984:20;11014:13;11037:14;11068:21;11092:19;11103:7;11092:10;:19::i;:::-;11133:11;;11184:6;;;;11177:13;;11133:11;;;;-1:-1:-1;11133:11:11;11161:6;;;;-1:-1:-1;;;;;11161:6:11;;-1:-1:-1;11133:11:11;;-1:-1:-1;11184:6:11;11133:11;11177:13;;;;;;-1:-1:-1;;11177:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11206:1;:5;;11200:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11234:12:11;;11272:15;;;;;10787:574;;;;-1:-1:-1;10787:574:11;;11200:11;;-1:-1:-1;;;11234:12:11;;;-1:-1:-1;;;;;11234:12:11;;;;-1:-1:-1;11272:15:11;;;-1:-1:-1;;;;;;11308:10:11;;;;;-1:-1:-1;11345:8:11;;;-1:-1:-1;;;;;11345:8:11;;-1:-1:-1;10787:574:11;-1:-1:-1;;10787:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9145:523:11:-;9326:27;9356:21;9367:9;9356:10;:21::i;:::-;9410:12;;9326:51;;-1:-1:-1;9396:10:11;-1:-1:-1;;;;;9396:26:11;;;9410:12;;;;;9396:26;9388:35;;;;;;9462:23;9441:17;;;;:44;;;;;;;;;9433:53;;;;;;9497:22;;-1:-1:-1;;;;;;9497:22:11;;-1:-1:-1;;;;;9497:22:11;;;;;;9529;:12;;;9544:7;;9529:22;:::i;:::-;-1:-1:-1;9561:20:11;:11;;;9575:6;;9561:20;:::i;:::-;-1:-1:-1;9591:34:11;;-1:-1:-1;;;;;9591:34:11;;;-1:-1:-1;;;9591:34:11;-1:-1:-1;;;;;;;;;;;9591:34:11;;;;;;;;;9636:25;;;;;;;;;;;;9145:523;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12284:161:11:-;12392:6;:13;12343:11;;-1:-1:-1;;;;;12382:23:11;;;12374:32;;;;;;12423:6;:15;;-1:-1:-1;;;;;12423:15:11;;;;;;;;;;;;;;;;;;;12416:22;;12284:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2117:319::-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;1696:82:8:-;1762:9;;1696:82;:::o;18983:583:7:-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12661:316:11:-;12724:6;;12764:23;12749:1;:11;:38;;;;;;;;;12742:46;;;;12803:1;:15;;;-1:-1:-1;;;;;12803:20:11;;12799:60;;;12846:1;12839:9;;;;12799:60;12898:27;12909:1;:15;;;12898:10;:27::i;:::-;12869:56;;12942:24;12959:6;12942:24;;;;;;;;;;;;;;;;;;;;;;;;;12969:1;12942:28;;12661:316;-1:-1:-1;;;12661:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;3449:195:0;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1086:946:8:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1086:946:8;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" + "object": "60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029", + "sourceMap": "1086:946:8:-;;;;;;;;;-1:-1:-1;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359:5;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11679:478:11;;;;;;;;;;-1:-1:-1;;;;;11679:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;1427:176:8;;;;;;;;;;-1:-1:-1;;;;;1427:176:8;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4987:589:11;;;-1:-1:-1;;;;;4987:589:11;;;;;10029:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2537:611:11;;;;;;;;;;;;;-1:-1:-1;;;;;2537:611:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2537:611:11;;-1:-1:-1;;;2537:611:11;;-1:-1:-1;;;;;2537:611:11;;;;;-1:-1:-1;;;;;2537:611:11;;-1:-1:-1;2537:611:11;;-1:-1:-1;;2537:611:11;7643:901;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7643:901:11;;;;;-1:-1:-1;;;;;7643:901:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2123:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2123:313:11;;;-1:-1:-1;;;;;2123:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;1139:21:8;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1960:70:8;;;;;;;;;;;;;;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6330:542:11;;;;;;;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3788:522:11;;;;;;;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10898:574:11;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9248:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11679:478:11:-;11753:4;11773:21;11797;11808:9;11797:10;:21::i;:::-;11773:45;-1:-1:-1;11848:21:11;11833:11;;;;:36;;;;;;;;;11829:79;;;11892:5;11885:12;;;;11829:79;11940:23;11925:11;;;;:38;;;;;;;;;11918:46;;;;11979:10;;;;-1:-1:-1;;;11979:10:11;;;;11975:52;;;12012:4;12005:11;;;;11975:52;12040:15;;;;-1:-1:-1;;;;;12040:15:11;:20;12036:63;;;12083:5;12076:12;;;;12036:63;12134:15;;;;12116:34;;-1:-1:-1;;;;;12134:15:11;12116:17;:34::i;:::-;12109:41;;11679:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;1427:176:8:-;140:19:26;;:24;132:33;;;;;;1522:49:8;1539:6;1547:23;1522:16;:49::i;:::-;-1:-1:-1;;1593:3:8;1581:9;:15;1427:176::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4987:589:11:-;5138:17;5180:21;5194:6;5180:13;:21::i;:::-;5172:30;;;;;;;;-1:-1:-1;5249:6:11;:13;;;;5274:254;;;;5249:6;5274:254;;:::i;:::-;;;;;;;;;;;;5299:219;;;;;;;;;5328:24;5299:219;;;;5370:10;-1:-1:-1;;;;;5299:219:11;;;;;5398:10;-1:-1:-1;;;;;5299:219:11;;;;;5426:1;-1:-1:-1;;;;;5299:219:11;;;;;5445:5;5299:219;;;;;;5468:6;-1:-1:-1;;;;;5299:219:11;;;;;5492:4;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:3;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5299:219:11;;;;-1:-1:-1;5274:254:11;;;-1:-1:-1;5274:254:11;;-1:-1:-1;;5274:254:11;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;-1:-1:-1;;;;;;5274:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;;;;;;;;;;5274:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5553:10;-1:-1:-1;;;;;5539:30:11;;5565:3;;5539:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:589;;;;;;;;:::o;10029:101::-;10106:6;:13;-1:-1:-1;;10106:17:11;10029:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;:::-;1281:166;;;:::o;2537:611:11:-;2705:14;2743:21;2757:6;2743:13;:21::i;:::-;2735:30;;;;;;;;-1:-1:-1;2809:6:11;:13;;;;2861:245;;;;2809:6;2861:245;;:::i;:::-;;;;;;;;;;;;2886:210;;;;;;;;;2915:21;2886:210;;-1:-1:-1;;;;;2886:210:11;;;;;;;-1:-1:-1;;;;;2886:210:11;;;;;;-1:-1:-1;2886:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:245;;-1:-1:-1;2861:245:11;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;-1:-1:-1;;;;;;2861:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;;;;;;;;;;2861:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3128:7;-1:-1:-1;;;;;3117:24:11;;3137:3;3117:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2537:611:11;;;;;;;:::o;7643:901::-;7853:16;7965:21;7894;7908:6;7894:13;:21::i;:::-;7886:30;;;;;;;;-1:-1:-1;;;;;7931:18:11;;;7927:250;;7989:25;8000:13;7989:10;:25::i;:::-;7965:49;;1096:2;8123:19;8140:1;8123:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8123:42:11;;8115:51;;;;;;8206:6;:13;;;-1:-1:-1;8206:13:11;8231:267;;;;8206:6;8231:267;;:::i;:::-;;;;;;;;;;;;8256:232;;;;;;;;;8285:23;8256:232;;;;8326:12;-1:-1:-1;;;;;8256:232:11;;;;;8356:10;-1:-1:-1;;;;;8256:232:11;;;;;8384:13;-1:-1:-1;;;;;8256:232:11;;;;;8415:5;8256:232;;;;;;8438:6;-1:-1:-1;;;;;8256:232:11;;;;;8462:4;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8484:3;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8256:232:11;;;;-1:-1:-1;8231:267:11;;;-1:-1:-1;8231:267:11;;-1:-1:-1;;8231:267:11;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;-1:-1:-1;;;;;;8231:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;;;;;;;;;;8231:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8522:9;-1:-1:-1;;;;;8509:28:11;;8533:3;;8509:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:901;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2123:313:11:-;2271:14;2308:121;2330:10;2354:4;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:3;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:10;2413:6;2308:8;:121::i;:::-;2301:128;2123:313;-1:-1:-1;;;;;;;2123:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;1139:21:8:-;;;;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1960:70:8:-;2009:9;:14;1960:70::o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6330:542:11:-;6513:28;6544:22;6555:10;6544;:22::i;:::-;6598:13;;6513:53;;-1:-1:-1;6584:10:11;-1:-1:-1;;;;;6584:27:11;;;6598:13;;;;;6584:27;6576:36;;;;;;6652:24;6630:18;;;;:46;;;;;;;;;6622:55;;;;;;6687:23;;-1:-1:-1;;;;;;6687:23:11;;-1:-1:-1;;;;;6687:23:11;;;;;;6720;:13;;;6736:7;;6720:23;:::i;:::-;-1:-1:-1;6753:21:11;:12;;;6768:6;;6753:21;:::i;:::-;-1:-1:-1;6784:35:11;;-1:-1:-1;;;;;6784:35:11;;;-1:-1:-1;;;6784:35:11;-1:-1:-1;;;;;;;;;;;6784:35:11;;;;;;;;;6830;;;6858:6;;6830:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:542;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3788:522:11:-;3965:25;3993:19;4004:7;3993:10;:19::i;:::-;4044:10;;3965:47;;-1:-1:-1;4030:10:11;-1:-1:-1;;;;;4030:24:11;;;4044:10;;;;;4030:24;4022:33;;;;;;4092:21;4073:15;;;;:40;;;;;;;;;4065:49;;;;;;4143:20;;-1:-1:-1;;;;;;4143:20:11;;-1:-1:-1;;;;;4143:20:11;;;;;;4173;:10;;;4186:7;;4173:20;:::i;:::-;-1:-1:-1;4203:18:11;:9;;;4215:6;;4203:18;:::i;:::-;-1:-1:-1;4231:32:11;;-1:-1:-1;;;;;4231:32:11;;;-1:-1:-1;;;4231:32:11;-1:-1:-1;;;;;;;;;;;4231:32:11;;;;;;;;;4274:29;;;4296:6;;4274:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3788:522;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10898:574:11:-;10970:25;11005:12;11027:11;;:::i;:::-;11048:10;;:::i;:::-;11068:17;11095:20;11125:13;11148:14;11179:21;11203:19;11214:7;11203:10;:19::i;:::-;11244:11;;11295:6;;;;11288:13;;11244:11;;;;-1:-1:-1;11244:11:11;11272:6;;;;-1:-1:-1;;;;;11272:6:11;;-1:-1:-1;11244:11:11;;-1:-1:-1;11295:6:11;11244:11;11288:13;;;;;;-1:-1:-1;;11288:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:1;:5;;11311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11345:12:11;;11383:15;;;;;10898:574;;;;-1:-1:-1;10898:574:11;;11311:11;;-1:-1:-1;;;11345:12:11;;;-1:-1:-1;;;;;11345:12:11;;;;-1:-1:-1;11383:15:11;;;-1:-1:-1;;;;;;11419:10:11;;;;;-1:-1:-1;11456:8:11;;;-1:-1:-1;;;;;11456:8:11;;-1:-1:-1;10898:574:11;-1:-1:-1;;10898:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9248:531:11:-;9429:27;9459:21;9470:9;9459:10;:21::i;:::-;9513:12;;9429:51;;-1:-1:-1;9499:10:11;-1:-1:-1;;;;;9499:26:11;;;9513:12;;;;;9499:26;9491:35;;;;;;9565:23;9544:17;;;;:44;;;;;;;;;9536:53;;;;;;9600:22;;-1:-1:-1;;;;;;9600:22:11;;-1:-1:-1;;;;;9600:22:11;;;;;;9632;:12;;;9647:7;;9632:22;:::i;:::-;-1:-1:-1;9664:20:11;:11;;;9678:6;;9664:20;:::i;:::-;-1:-1:-1;9694:34:11;;-1:-1:-1;;;;;9694:34:11;;;-1:-1:-1;;;9694:34:11;-1:-1:-1;;;;;;;;;;;9694:34:11;;;;;;;;;9739:33;;;9765:6;;9739:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12395:161:11:-;12503:6;:13;12454:11;;-1:-1:-1;;;;;12493:23:11;;;12485:32;;;;;;12534:6;:15;;-1:-1:-1;;;;;12534:15:11;;;;;;;;;;;;;;;;;;;12527:22;;12395:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2117:319::-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;1696:82:8:-;1762:9;;1696:82;:::o;18983:583:7:-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12772:316:11:-;12835:6;;12875:23;12860:1;:11;:38;;;;;;;;;12853:46;;;;12914:1;:15;;;-1:-1:-1;;;;;12914:20:11;;12910:60;;;12957:1;12950:9;;;;12910:60;13009:27;13020:1;:15;;;13009:10;:27::i;:::-;12980:56;;13053:24;13070:6;13053:24;;;;;;;;;;;;;;;;;;;;;;;;;13080:1;13053:28;;12772:316;-1:-1:-1;;;12772:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;3449:195:0;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1086:946:8:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1086:946:8;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" }, "gasEstimates": { "creation": { - "codeDepositCost": "4333000", + "codeDepositCost": "4387800", "executionCost": "infinite", "totalCost": "infinite" }, @@ -7329,6 +7419,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverAdded", @@ -7341,6 +7436,11 @@ "indexed": true, "name": "idGiver", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "GiverUpdated", @@ -7353,6 +7453,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateAdded", @@ -7365,6 +7470,11 @@ "indexed": true, "name": "idDelegate", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "DelegateUpdated", @@ -7377,6 +7487,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectAdded", @@ -7389,6 +7504,11 @@ "indexed": true, "name": "idProject", "type": "uint64" + }, + { + "indexed": false, + "name": "url", + "type": "string" } ], "name": "ProjectUpdated", @@ -7473,19 +7593,19 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60606040526069805460ff19169055341561001957600080fd5b6121f9806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029", - "sourceMap": "919:12060:11:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;919:12060:11;;;;;;;;;;;;;;" + "object": "60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029", + "sourceMap": "919:12171:11:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;919:12171:11;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610ca6565b341561029657600080fd5b6101af610cb1565b34156102a957600080fd5b6101df600160a060020a0360043516610ce5565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d46915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610f45565b34156103d557600080fd5b6101df600160a060020a03600435166113e3565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661145b565b341561043757600080fd5b6101af6114d7565b341561044a57600080fd5b6101af600160a060020a03600435166114dd565b341561046957600080fd5b6101af61155f565b341561047c57600080fd5b6101af611565565b341561048f57600080fd5b61016860048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506115e195505050505050565b34156104f257600080fd5b6101df60043561171f565b341561050857600080fd5b6101df600435611777565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166117e6565b341561056b57600080fd5b6105736118cf565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166118de565b34156105e757600080fd5b6105fc67ffffffffffffffff600435166119c7565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611b9c565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611c8595505050505050565b34156107dd57600080fd5b610573611d61565b60695460ff1681565b6000806107fa83611d75565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b60405160008051602061218e8339815191528152601301604051809103902081565b600060405160008051602061218e83398151915281526013016040518091039020610904338260006040518059106108ee5750595b90808252806020026020018201604052506115e1565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611777565b600190910190610914565b50505050565b60405160008051602061218e8339815191528152601301604051809103902061099b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a17836114dd565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b8382611f9a565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c46929160200190611fcb565b5060e082015181600301908051610c61929160200190611fcb565b505050508067ffffffffffffffff167f014882843f1e57bd41e0826ad1cd5e6180d4d4f76df8b12edc8b44575322d94e60405160405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061218e83398151915281526013016040518091039020610d0d82611dbd565b610d183383836115e1565b1515610d2357600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d51826109b9565b1515610d5c57600080fd5b5060648054908160018101610d718382611f9a565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610def57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610ee7929160200190611fcb565b5060e082015181600301908051610f02929160200190611fcb565b505050508067ffffffffffffffff167efc763def3c85dbc7bab43e314ba21264ec158217c45cf1eaf94f5ae15bc2c560405160405180910390a295945050505050565b600080610f51836109b9565b1515610f5c57600080fd5b67ffffffffffffffff85161561118157610f7585611d75565b9050601461116d826101006040519081016040528154909190829060ff166002811115610f9e57fe5b6002811115610fa957fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156110bd5780601f10611092576101008083540402835291602001916110bd565b820191906000526020600020905b8154815290600101906020018083116110a057829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561115f5780601f106111345761010080835404028352916020019161115f565b820191906000526020600020905b81548152906001019060200180831161114257829003601f168201915b505050505081525050611ddd565b67ffffffffffffffff161061118157600080fd5b60648054925082600181016111968382611f9a565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561128857fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206121ae833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611380929160200190611fcb565b5060e08201518160030190805161139b929160200190611fcb565b505050508167ffffffffffffffff167fd7db7003e8f35149eda3d3685c2ab151ee561ad34853fdb0f4d7ecb33fff889060405160405180910390a25098975050505050505050565b60405160008051602061218e8339815191528152601301604051809103902061142b338260006040518059106108ee57505990808252806020026020018201604052506115e1565b151561143657600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60006114cc3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d46565b979650505050505050565b60015481565b60006114e7612045565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061152b5780518252601f19909201916020918201910161150c565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006115eb612045565b6000808451111561160457835160200290508391508082525b600054600160a060020a03161580611715575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156116ab578082015183820152602001611693565b50505050905090810190601f1680156116d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156116f957600080fd5b6102c65a03f1151561170a57600080fd5b505050604051805190505b9695505050505050565b60405160008051602061218e8339815191528152601301604051809103902061174782611e52565b6117523383836115e1565b151561175d57600080fd5b50506000908152606760205260409020805460ff19169055565b60405160008051602061218e833981519152815260130160405180910390206117bf338260006040518059106108ee57505990808252806020026020018201604052506115e1565b15156117ca57600080fd5b506000908152606760205260409020805460ff19166001179055565b60006117f188611d75565b805490915033600160a060020a03908116610100909204161461181357600080fd5b6001815460ff16600281111561182557fe5b1461182f57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561185b600282018787612057565b5061186a600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f01a3bd608e7be74358498f90bd2ff305f9fdb8e94d76167f40fef03aae56620360405160405180910390a25050505050505050565b600054600160a060020a031681565b60006118e988611d75565b805490915033600160a060020a03908116610100909204161461190b57600080fd5b6000815460ff16600281111561191d57fe5b1461192757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611953600282018787612057565b50611962600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167fe8da06f5d4d8fa2ef122c9fc3d5ae15379d95f5b9ebf92a5821b57705600320a60405160405180910390a25050505050505050565b6000806119d2612045565b6119da612045565b60008060008060006119eb8a611d75565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa05780601f10611a7557610100808354040283529160200191611aa0565b820191906000526020600020905b815481529060010190602001808311611a8357829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b3f5780601f10611b1457610100808354040283529160200191611b3f565b820191906000526020600020905b815481529060010190602001808311611b2257829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611ba788611d75565b805490915033600160a060020a039081166101009092041614611bc957600080fd5b6002815460ff166002811115611bdb57fe5b14611be557600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611c11600282018787612057565b50611c20600382018585612057565b50805467ffffffffffffffff80841660a860020a026000805160206121ae83398151915290921691909117825588167f035196d5942819024277421e936a2e76840abb7bb5a320924ce0a9826daeba4460405160405180910390a25050505050505050565b6000611c8f611e63565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf6578082015183820152602001611cde565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611d4157600080fd5b6102c65a03f11515611d5257600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611d9057600080fd5b6064805467ffffffffffffffff8416908110611da857fe5b90600052602060002090600402019050919050565b611dc5612045565b611dd782600160a060020a0316611f53565b92915050565b600080600283516002811115611def57fe5b14611df657fe5b826060015167ffffffffffffffff161515611e145760019150610891565b611e218360600151611d75565b9050611e48816101006040519081016040528154909190829060ff166002811115610f9e57fe5b6001019392505050565b611e5a612045565b611dd782611f53565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611f2f57600080fd5b6102c65a03f11515611f4057600080fd5b50505060405180519250829150505b5090565b611f5b612045565b6001604051805910611f6a5750595b908082528060200260200182016040525090508181600081518110611f8b57fe5b60209081029091010152919050565b815481835581811511611fc657600402816004028360005260206000209182019101611fc691906120c5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061200c57805160ff1916838001178555612039565b82800160010185558215612039579182015b8281111561203957825182559160200191906001019061201e565b50611f4f92915061212c565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff19823516178555612039565b82800160010185558215612039579182015b828111156120395782358255916020019190600101906120aa565b610cae91905b80821115611f4f5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006121156002830182612146565b612123600383016000612146565b506004016120cb565b610cae91905b80821115611f4f5760008155600101612132565b50805460018160011615610100020316600290046000825580601f1061216c575061218a565b601f01602090049060005260206000209081019061218a919061212c565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a7230582084ac9e946605d2dc83cfae3d44664f451b9b193118c33b8e3da72f490af9e6f40029", - "sourceMap": "919:12060:11:-;;;;;;;;;-1:-1:-1;;;919:12060:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:478:11;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226;;;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;2140:450;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4902:584:11;;;;;;;;;;;;;;;;;;;;;;;9918:101;;;;;;;;;;;;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;2465:606:11;;;;;;;;;;;;;-1:-1:-1;;;;;2465:606:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2465:606:11;;-1:-1:-1;;;2465:606:11;;;;;;;;-1:-1:-1;;;;;2465:606:11;;-1:-1:-1;2465:606:11;;-1:-1:-1;;2465:606:11;7545:896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:896:11;;;;;;;;;;;;;;;;;;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2051:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2051:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1672:174:9;;;;;;;;;;;;;;1286:148;;;;;;;;;;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6240:534:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3711:514:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;10787:574;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10787:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9145:523:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11568:478:11:-;11642:4;11662:21;11686;11697:9;11686:10;:21::i;:::-;11662:45;-1:-1:-1;11737:21:11;11722:11;;;;:36;;;;;;;;;11718:79;;;11781:5;11774:12;;;;11718:79;11829:23;11814:11;;;;:38;;;;;;;;;11807:46;;;;11868:10;;;;;;;;;11864:52;;;11901:4;11894:11;;;;11864:52;11929:15;;;;;;:20;11925:63;;;11972:5;11965:12;;;;11925:63;12023:15;;;;12005:34;;12023:15;;12005:17;:34::i;:::-;11998:41;;11568:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1440:226::-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;;1440:226;;;;:::o;2008:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;2140:450::-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4902:584:11:-;5053:17;5095:21;5109:6;5095:13;:21::i;:::-;5087:30;;;;;;;;-1:-1:-1;5164:6:11;:13;;;;5189:254;;;;5164:6;5189:254;;:::i;:::-;;;;;;;;;;;;5214:219;;;;;;;;;5243:24;5214:219;;;;5285:10;-1:-1:-1;;;;;5214:219:11;;;;;5313:10;5214:219;;;;;;5341:1;5214:219;;;;;;5360:5;5214:219;;;;;;5383:6;-1:-1:-1;;;;;5214:219:11;;;;;5407:4;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:3;;5214:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5214:219:11;;;;-1:-1:-1;5189:254:11;;;-1:-1:-1;5189:254:11;;-1:-1:-1;;5189:254:11;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;-1:-1:-1;;;;;;5189:254:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;5189:254:11;-1:-1:-1;;;;;;;;;;;5189:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5189:254:11;;;;;-1:-1:-1;;;;;5189:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5468:10;5454:25;;;;;;;;;;;;4902:584;;;;;;;;:::o;9918:101::-;9995:6;:13;-1:-1:-1;;9995:17:11;9918:101;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;2465:606:11:-;2633:14;2671:21;2685:6;2671:13;:21::i;:::-;2663:30;;;;;;;;-1:-1:-1;2737:6:11;:13;;;;2789:245;;;;2737:6;2789:245;;:::i;:::-;;;;;;;;;;;;2814:210;;;;;;;;;2843:21;2814:210;;-1:-1:-1;;;;;2814:210:11;;;;;;;;;;;;;;-1:-1:-1;2814:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2789:245;;-1:-1:-1;2789:245:11;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;-1:-1:-1;;;;;;2789:245:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;2789:245:11;-1:-1:-1;;;;;;;;;;;2789:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2789:245:11;;;;;-1:-1:-1;;;;;2789:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3056:7;3045:19;;;;;;;;;;;;2465:606;;;;;;;:::o;7545:896::-;7755:16;7867:21;7796;7810:6;7796:13;:21::i;:::-;7788:30;;;;;;;;7833:18;;;;7829:250;;7891:25;7902:13;7891:10;:25::i;:::-;7867:49;;1096:2;8025:19;8042:1;8025:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8025:19:11;;;;;;;;;;;-1:-1:-1;;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8025:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;:42;;;8017:51;;;;;;8108:6;:13;;;-1:-1:-1;8108:13:11;8133:267;;;;8108:6;8133:267;;:::i;:::-;;;;;;;;;;;;8158:232;;;;;;;;;8187:23;8158:232;;;;8228:12;-1:-1:-1;;;;;8158:232:11;;;;;8258:10;8158:232;;;;;;8286:13;8158:232;;;;;;8317:5;8158:232;;;;;;8340:6;-1:-1:-1;;;;;8158:232:11;;;;;8364:4;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:3;;8158:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8158:232:11;;;;-1:-1:-1;8133:267:11;;;-1:-1:-1;8133:267:11;;-1:-1:-1;;8133:267:11;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;-1:-1:-1;;;;;;8133:267:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;8133:267:11;-1:-1:-1;;;;;;;;;;;8133:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8133:267:11;;;;;-1:-1:-1;;;;;8133:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8424:9;8411:23;;;;;;;;;;;;7545:896;;;;;;;;;;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2051:313:11:-;2199:14;2236:121;2258:10;2282:4;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2300:3;;2236:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2317:10;2341:6;2236:8;:121::i;:::-;2229:128;2051:313;-1:-1:-1;;;;;;;2051:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1286:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6240:534:11:-;6423:28;6454:22;6465:10;6454;:22::i;:::-;6508:13;;6423:53;;-1:-1:-1;6494:10:11;-1:-1:-1;;;;;6494:27:11;;;6508:13;;;;;6494:27;6486:36;;;;;;6562:24;6540:18;;;;:46;;;;;;;;;6532:55;;;;;;6597:23;;-1:-1:-1;;;;;;6597:23:11;;-1:-1:-1;;;;;6597:23:11;;;;;;6630;:13;;;6646:7;;6630:23;:::i;:::-;-1:-1:-1;6663:21:11;:12;;;6678:6;;6663:21;:::i;:::-;-1:-1:-1;6694:35:11;;;;;;-1:-1:-1;;;6694:35:11;-1:-1:-1;;;;;;;;;;;6694:35:11;;;;;;;;;6740:27;;;;;;;;;;;;6240:534;;;;;;;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;3711:514:11:-;3888:25;3916:19;3927:7;3916:10;:19::i;:::-;3967:10;;3888:47;;-1:-1:-1;3953:10:11;-1:-1:-1;;;;;3953:24:11;;;3967:10;;;;;3953:24;3945:33;;;;;;4015:21;3996:15;;;;:40;;;;;;;;;3988:49;;;;;;4066:20;;-1:-1:-1;;;;;;4066:20:11;;-1:-1:-1;;;;;4066:20:11;;;;;;4096;:10;;;4109:7;;4096:20;:::i;:::-;-1:-1:-1;4126:18:11;:9;;;4138:6;;4126:18;:::i;:::-;-1:-1:-1;4154:32:11;;;;;;-1:-1:-1;;;4154:32:11;-1:-1:-1;;;;;;;;;;;4154:32:11;;;;;;;;;4197:21;;;;;;;;;;;;3711:514;;;;;;;;:::o;10787:574::-;10859:25;10894:12;10916:11;;:::i;:::-;10937:10;;:::i;:::-;10957:17;10984:20;11014:13;11037:14;11068:21;11092:19;11103:7;11092:10;:19::i;:::-;11133:11;;11184:6;;;;11177:13;;11133:11;;;;-1:-1:-1;11133:11:11;11161:6;;;;-1:-1:-1;;;;;11161:6:11;;-1:-1:-1;11133:11:11;;-1:-1:-1;11184:6:11;11133:11;11177:13;;;;;;-1:-1:-1;;11177:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11206:1;:5;;11200:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11234:12:11;;11272:15;;;;;10787:574;;;;-1:-1:-1;10787:574:11;;11200:11;;-1:-1:-1;;;11234:12:11;;;;;;;;-1:-1:-1;11272:15:11;;;-1:-1:-1;;;11308:10:11;;;;;;-1:-1:-1;11345:8:11;;;-1:-1:-1;;;;;11345:8:11;;-1:-1:-1;10787:574:11;-1:-1:-1;;10787:574:11:o;9145:523::-;9326:27;9356:21;9367:9;9356:10;:21::i;:::-;9410:12;;9326:51;;-1:-1:-1;9396:10:11;-1:-1:-1;;;;;9396:26:11;;;9410:12;;;;;9396:26;9388:35;;;;;;9462:23;9441:17;;;;:44;;;;;;;;;9433:53;;;;;;9497:22;;-1:-1:-1;;;;;;9497:22:11;;-1:-1:-1;;;;;9497:22:11;;;;;;9529;:12;;;9544:7;;9529:22;:::i;:::-;-1:-1:-1;9561:20:11;:11;;;9575:6;;9561:20;:::i;:::-;-1:-1:-1;9591:34:11;;;;;;-1:-1:-1;;;9591:34:11;-1:-1:-1;;;;;;;;;;;9591:34:11;;;;;;;;;9636:25;;;;;;;;;;;;9145:523;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12284:161:11:-;12392:6;:13;12343:11;;12382:23;;;;12374:32;;;;;;12423:6;:15;;;;;;;;;;;;;;;;;;;;;;12416:22;;12284:161;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12661:316:11:-;12724:6;;12764:23;12749:1;:11;:38;;;;;;;;;12742:46;;;;12803:1;:15;;;:20;;;12799:60;;;12846:1;12839:9;;;;12799:60;12898:27;12909:1;:15;;;12898:10;:27::i;:::-;12869:56;;12942:24;12959:6;12942:24;;;;;;;;;;;;;;;;;;;;;;;;;12969:1;12942:28;;12661:316;-1:-1:-1;;;12661:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;919:12060:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:12060:11;;;-1:-1:-1;919:12060:11;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;919:12060:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o" + "object": "6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029", + "sourceMap": "919:12171:11:-;;;;;;;;;-1:-1:-1;;;919:12171:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11679:478:11;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226;;;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;2140:450;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;10029:101;;;;;;;;;;;;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;2537:611:11;;;;;;;;;;;;;-1:-1:-1;;;;;2537:611:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2537:611:11;;-1:-1:-1;;;2537:611:11;;;;;;;;-1:-1:-1;;;;;2537:611:11;;-1:-1:-1;2537:611:11;;-1:-1:-1;;2537:611:11;7643:901;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7643:901:11;;;;;;;;;;;;;;;;;;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2123:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2123:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1672:174:9;;;;;;;;;;;;;;1286:148;;;;;;;;;;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;10898:574;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11679:478:11:-;11753:4;11773:21;11797;11808:9;11797:10;:21::i;:::-;11773:45;-1:-1:-1;11848:21:11;11833:11;;;;:36;;;;;;;;;11829:79;;;11892:5;11885:12;;;;11829:79;11940:23;11925:11;;;;:38;;;;;;;;;11918:46;;;;11979:10;;;;;;;;;11975:52;;;12012:4;12005:11;;;;11975:52;12040:15;;;;;;:20;12036:63;;;12083:5;12076:12;;;;12036:63;12134:15;;;;12116:34;;12134:15;;12116:17;:34::i;:::-;12109:41;;11679:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1440:226::-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;;1440:226;;;;:::o;2008:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;2140:450::-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4987:589:11:-;5138:17;5180:21;5194:6;5180:13;:21::i;:::-;5172:30;;;;;;;;-1:-1:-1;5249:6:11;:13;;;;5274:254;;;;5249:6;5274:254;;:::i;:::-;;;;;;;;;;;;5299:219;;;;;;;;;5328:24;5299:219;;;;5370:10;-1:-1:-1;;;;;5299:219:11;;;;;5398:10;5299:219;;;;;;5426:1;5299:219;;;;;;5445:5;5299:219;;;;;;5468:6;-1:-1:-1;;;;;5299:219:11;;;;;5492:4;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:3;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5299:219:11;;;;-1:-1:-1;5274:254:11;;;-1:-1:-1;5274:254:11;;-1:-1:-1;;5274:254:11;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;-1:-1:-1;;;;;;5274:254:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;;;;;;;;;;5274:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5553:10;5539:30;;;5565:3;;5539:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:589;;;;;;;;:::o;10029:101::-;10106:6;:13;-1:-1:-1;;10106:17:11;10029:101;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;2537:611:11:-;2705:14;2743:21;2757:6;2743:13;:21::i;:::-;2735:30;;;;;;;;-1:-1:-1;2809:6:11;:13;;;;2861:245;;;;2809:6;2861:245;;:::i;:::-;;;;;;;;;;;;2886:210;;;;;;;;;2915:21;2886:210;;-1:-1:-1;;;;;2886:210:11;;;;;;;;;;;;;;-1:-1:-1;2886:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:245;;-1:-1:-1;2861:245:11;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;-1:-1:-1;;;;;;2861:245:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;;;;;;;;;;2861:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3128:7;3117:24;;;3137:3;3117:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2537:611:11;;;;;;;:::o;7643:901::-;7853:16;7965:21;7894;7908:6;7894:13;:21::i;:::-;7886:30;;;;;;;;7931:18;;;;7927:250;;7989:25;8000:13;7989:10;:25::i;:::-;7965:49;;1096:2;8123:19;8140:1;8123:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;:42;;;8115:51;;;;;;8206:6;:13;;;-1:-1:-1;8206:13:11;8231:267;;;;8206:6;8231:267;;:::i;:::-;;;;;;;;;;;;8256:232;;;;;;;;;8285:23;8256:232;;;;8326:12;-1:-1:-1;;;;;8256:232:11;;;;;8356:10;8256:232;;;;;;8384:13;8256:232;;;;;;8415:5;8256:232;;;;;;8438:6;-1:-1:-1;;;;;8256:232:11;;;;;8462:4;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8484:3;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8256:232:11;;;;-1:-1:-1;8231:267:11;;;-1:-1:-1;8231:267:11;;-1:-1:-1;;8231:267:11;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;-1:-1:-1;;;;;;8231:267:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;;;;;;;;;;8231:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8522:9;8509:28;;;8533:3;;8509:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:901;;;;;;;;;;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2123:313:11:-;2271:14;2308:121;2330:10;2354:4;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:3;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:10;2413:6;2308:8;:121::i;:::-;2301:128;2123:313;-1:-1:-1;;;;;;;2123:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1286:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6330:542:11:-;6513:28;6544:22;6555:10;6544;:22::i;:::-;6598:13;;6513:53;;-1:-1:-1;6584:10:11;-1:-1:-1;;;;;6584:27:11;;;6598:13;;;;;6584:27;6576:36;;;;;;6652:24;6630:18;;;;:46;;;;;;;;;6622:55;;;;;;6687:23;;-1:-1:-1;;;;;;6687:23:11;;-1:-1:-1;;;;;6687:23:11;;;;;;6720;:13;;;6736:7;;6720:23;:::i;:::-;-1:-1:-1;6753:21:11;:12;;;6768:6;;6753:21;:::i;:::-;-1:-1:-1;6784:35:11;;;;;;-1:-1:-1;;;6784:35:11;-1:-1:-1;;;;;;;;;;;6784:35:11;;;;;;;;;6830;;;6858:6;;6830:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:542;;;;;;;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;3788:522:11:-;3965:25;3993:19;4004:7;3993:10;:19::i;:::-;4044:10;;3965:47;;-1:-1:-1;4030:10:11;-1:-1:-1;;;;;4030:24:11;;;4044:10;;;;;4030:24;4022:33;;;;;;4092:21;4073:15;;;;:40;;;;;;;;;4065:49;;;;;;4143:20;;-1:-1:-1;;;;;;4143:20:11;;-1:-1:-1;;;;;4143:20:11;;;;;;4173;:10;;;4186:7;;4173:20;:::i;:::-;-1:-1:-1;4203:18:11;:9;;;4215:6;;4203:18;:::i;:::-;-1:-1:-1;4231:32:11;;;;;;-1:-1:-1;;;4231:32:11;-1:-1:-1;;;;;;;;;;;4231:32:11;;;;;;;;;4274:29;;;4296:6;;4274:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3788:522;;;;;;;;:::o;10898:574::-;10970:25;11005:12;11027:11;;:::i;:::-;11048:10;;:::i;:::-;11068:17;11095:20;11125:13;11148:14;11179:21;11203:19;11214:7;11203:10;:19::i;:::-;11244:11;;11295:6;;;;11288:13;;11244:11;;;;-1:-1:-1;11244:11:11;11272:6;;;;-1:-1:-1;;;;;11272:6:11;;-1:-1:-1;11244:11:11;;-1:-1:-1;11295:6:11;11244:11;11288:13;;;;;;-1:-1:-1;;11288:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:1;:5;;11311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11345:12:11;;11383:15;;;;;10898:574;;;;-1:-1:-1;10898:574:11;;11311:11;;-1:-1:-1;;;11345:12:11;;;;;;;;-1:-1:-1;11383:15:11;;;-1:-1:-1;;;11419:10:11;;;;;;-1:-1:-1;11456:8:11;;;-1:-1:-1;;;;;11456:8:11;;-1:-1:-1;10898:574:11;-1:-1:-1;;10898:574:11:o;9248:531::-;9429:27;9459:21;9470:9;9459:10;:21::i;:::-;9513:12;;9429:51;;-1:-1:-1;9499:10:11;-1:-1:-1;;;;;9499:26:11;;;9513:12;;;;;9499:26;9491:35;;;;;;9565:23;9544:17;;;;:44;;;;;;;;;9536:53;;;;;;9600:22;;-1:-1:-1;;;;;;9600:22:11;;-1:-1:-1;;;;;9600:22:11;;;;;;9632;:12;;;9647:7;;9632:22;:::i;:::-;-1:-1:-1;9664:20:11;:11;;;9678:6;;9664:20;:::i;:::-;-1:-1:-1;9694:34:11;;;;;;-1:-1:-1;;;9694:34:11;-1:-1:-1;;;;;;;;;;;9694:34:11;;;;;;;;;9739:33;;;9765:6;;9739:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12395:161:11:-;12503:6;:13;12454:11;;12493:23;;;;12485:32;;;;;;12534:6;:15;;;;;;;;;;;;;;;;;;;;;;12527:22;;12395:161;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12772:316:11:-;12835:6;;12875:23;12860:1;:11;:38;;;;;;;;;12853:46;;;;12914:1;:15;;;:20;;;12910:60;;;12957:1;12950:9;;;;12910:60;13009:27;13020:1;:15;;;13009:10;:27::i;:::-;12980:56;;13053:24;13070:6;13053:24;;;;;;;;;;;;;;;;;;;;;;;;;13080:1;13053:28;;12772:316;-1:-1:-1;;;12772:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;919:12171:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:12171:11;;;-1:-1:-1;919:12171:11;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;919:12171:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o" }, "gasEstimates": { "creation": { - "codeDepositCost": "1739400", - "executionCost": "22040", - "totalCost": "1761440" + "codeDepositCost": "1794200", + "executionCost": "22104", + "totalCost": "1816304" }, "external": { "EVMSCRIPT_REGISTRY_APP()": "859", @@ -8060,13 +8180,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029", - "sourceMap": "122:1437:13:-;;;473:230;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;557:10:13;-1:-1:-1;;;;;557:23:13;;;571:9;557:23;;;;;;549:32;;;;;;636:14;:32;;-1:-1:-1;;;;;;;;;;;636:32:13;;;;;-1:-1:-1;;;;;;;;636:32:13;;;;678:18;;;;;;;;122:1437;;;;;;" + "object": "6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029", + "sourceMap": "122:1451:13:-;;;473:237;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;564:10:13;-1:-1:-1;;;;;564:23:13;;;578:9;564:23;;;;;;556:32;;;;;;643:14;:32;;-1:-1:-1;;;;;;;;;;;643:32:13;;;;;-1:-1:-1;;;;;;;;643:32:13;;;;685:18;;;;;;;;122:1451;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029", - "sourceMap": "122:1437:13:-;;;;;;;;;-1:-1:-1;;;122:1437:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;709:255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;709:255:13;;-1:-1:-1;;;709:255:13;;;;;-1:-1:-1;709:255:13;;-1:-1:-1;;709:255:13;;;1280:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;:::o;709:255::-;815:11;;-1:-1:-1;;;815:11:13;;;;807:20;;;;;;;;850:14;;;;;;;;;;;:26;;;877:4;883:3;888:10;922:4;850:78;;;;;;;;-1:-1:-1;;;850:78:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:10:13;:91;;-1:-1:-1;;837:91:13;;;;;;;;;;938:19;;;;-1:-1:-1;;;;709:255:13:o;1280:276::-;1462:11;;-1:-1:-1;;;1462:11:13;;;;1461:12;1453:21;;;;;;1484:65;1498:11;1511:10;1523:8;1533:7;1542:6;1484:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:276;;;;;:::o;970:304::-;1143:15;1179:11;;-1:-1:-1;;;1179:11:13;;;;1178:12;1170:21;;;;;;1201:66;1216:11;1229:10;1241:8;1251:7;1260:6;1201:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:304;;;;;;;:::o" + "object": "6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029", + "sourceMap": "122:1451:13:-;;;;;;;;;-1:-1:-1;;;122:1451:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;716:262:13;;-1:-1:-1;;;716:262:13;;;;;-1:-1:-1;716:262:13;;-1:-1:-1;;716:262:13;;;1294:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;984:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;:::o;716:262::-;829:11;;-1:-1:-1;;;829:11:13;;;;821:20;;;;;;;;864:14;;;;;;;;;;;:26;;;891:4;897:3;902:10;936:4;864:78;;;;;;;;-1:-1:-1;;;864:78:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:10:13;:91;;-1:-1:-1;;851:91:13;;;;;;;;;;952:19;;;;-1:-1:-1;;;;716:262:13:o;1294:276::-;1476:11;;-1:-1:-1;;;1476:11:13;;;;1475:12;1467:21;;;;;;1498:65;1512:11;1525:10;1537:8;1547:7;1556:6;1498:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1294:276;;;;;:::o;984:304::-;1157:15;1193:11;;-1:-1:-1;;;1193:11:13;;;;1192:12;1184:21;;;;;;1215:66;1230:11;1243:10;1255:8;1265:7;1274:6;1215:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;984:304;;;;;;;:::o" }, "gasEstimates": { "creation": { @@ -8124,13 +8244,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a800296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058203a3508650c7c85e926de176d8dd7c9fcdffce5a93312dee463b7a1180ea84a4f0029", - "sourceMap": "1561:335:13:-;;;1609:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:26:13;;-1:-1:-1;1832:14:13;1803:44;;:::i;:::-;-1:-1:-1;;;;;1803:44:13;;;;;;;;;;;;;;;;;;;;;;;;1774:73;;1857:1;-1:-1:-1;;;;;1857:6:13;;1864:4;1870:3;1875:10;1857:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1857:29:13;-1:-1:-1;;;;;1857:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:284:13;;;;;1561:335;;;;;;;;;;;;:::o;:::-;;;;;;;" + "object": "6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b000296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029", + "sourceMap": "1575:341:13:-;;;1623:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1794:26:13;;-1:-1:-1;1852:14:13;1823:44;;:::i;:::-;-1:-1:-1;;;;;1823:44:13;;;;;;;;;;;;;;;;;;;;;;;;1794:73;;1877:1;-1:-1:-1;;;;;1877:6:13;;1884:4;1890:3;1895:10;1877:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1877:29:13;-1:-1:-1;;;;;1877:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1623:290:13;;;;;1575:341;;;;;;;;;;;;:::o;:::-;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600080fd00a165627a7a72305820274b986daddaceded0dbcef914b7648ac6c0c57d1014d1405e619fcf242292a80029", - "sourceMap": "1561:335:13:-;;;;;" + "object": "6060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b00029", + "sourceMap": "1575:341:13:-;;;;;" }, "gasEstimates": { "creation": { @@ -8331,12 +8451,12 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029", + "object": "6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029", "sourceMap": "122:1388:14:-;;;436:157;;;;;;;;503:9;-1:-1:-1;;;;;489:23:14;:10;-1:-1:-1;;;;;489:23:14;;;481:32;;;;;;;;568:11;:18;;-1:-1:-1;;;;;;568:18:14;;;;;122:1388;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029", + "object": "6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029", "sourceMap": "122:1388:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;599:316:14;;-1:-1:-1;;;599:316:14;;;;;-1:-1:-1;599:316:14;;-1:-1:-1;;599:316:14;;;162:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;747:11;;;;;;;739:20;;;;;;;;781:14;:25;;;807:4;813:3;826:4;833:13;848:1;873:4;781:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:9:14;:110;;-1:-1:-1;;769:110:14;;;;;;;;;;-1:-1:-1;;889:19:14;;;-1:-1:-1;;;;;599:316:14:o;162:23::-;;;;;;:::o;1231:276::-;1413:11;;;;;;;1412:12;1404:21;;;;;;1435:65;1449:11;1462:10;1474:8;1484:7;1493:6;1435:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;:::o;921:304::-;1094:15;1130:11;;;;;;;1129:12;1121:21;;;;;;1152:66;1167:11;1180:10;1192:8;1202:7;1211:6;1152:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;:::o" }, "gasEstimates": { @@ -8400,12 +8520,12 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029", + "object": "6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029", "sourceMap": "168:314:15:-;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820f9c9a0fdffda120244d1ba9283de87c58293b64358f015dc5d53086d10c53a380029a165627a7a723058208ef98a8081ee0acc193d2e15501e60f9096d0eb7d7e02701f2bec7c5402324110029", + "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029", "sourceMap": "168:314:15:-;;;;;;;;;;;;;;;;;;;;;;;215:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:264:15;;-1:-1:-1;;;215:264:15;;;;;-1:-1:-1;215:264:15;;-1:-1:-1;;215:264:15;;;;357:25;385:29;;:::i;:::-;;;;;;;;;;;;;;;;;;357:57;;424:1;:6;;;431:14;447:4;453:3;458:13;424:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:264:15;;;;;:::o;168:314::-;;;;;;;;;;:::o" }, "gasEstimates": { @@ -13478,27 +13598,6 @@ } }, "errors": [ - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:15:5: Warning: No visibility specified. Defaulting to \"public\".\n function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) {\n ^\nSpanning multiple lines.\n", - "message": "No visibility specified. Defaulting to \"public\".", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:21:5: Warning: No visibility specified. Defaulting to \"public\".\n function init(\n ^\nSpanning multiple lines.\n", - "message": "No visibility specified. Defaulting to \"public\".", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:57:5: Warning: No visibility specified. Defaulting to \"public\".\n function TestSimpleDelegatePluginFactory (\n ^\nSpanning multiple lines.\n", - "message": "No visibility specified. Defaulting to \"public\".", - "severity": "warning", - "type": "Warning" - }, { "component": "general", "formattedMessage": "./contracts/test/TestSimpleProjectPlugin.sol:14:5: Warning: No visibility specified. Defaulting to \"public\".\n function TestSimpleProjectPlugin() {\n ^\nSpanning multiple lines.\n", @@ -13592,14 +13691,14 @@ }, { "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:54:5: Warning: Function state mutability can be restricted to pure\n function returnedData() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", + "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:39:5: Warning: Function state mutability can be restricted to pure\n function returnedDataDecoded() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", "message": "Function state mutability can be restricted to pure", "severity": "warning", "type": "Warning" }, { "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:39:5: Warning: Function state mutability can be restricted to pure\n function returnedDataDecoded() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", + "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:54:5: Warning: Function state mutability can be restricted to pure\n function returnedData() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", "message": "Function state mutability can be restricted to pure", "severity": "warning", "type": "Warning" From e81fff9de8e7f223e68e6200c12dab170840fa02 Mon Sep 17 00:00:00 2001 From: perissology Date: Thu, 29 Mar 2018 10:00:54 -0700 Subject: [PATCH 48/52] new version --- .gitignore | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 62336de..27f1afa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +build/ +lib/ node_modules/ .DS_Store diff --git a/package.json b/package.json index 67f23c3..7d099c5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "giveth-liquidpledging", - "version": "0.0.10", + "version": "0.1.0", "description": "Liquid Pledging Smart Contract", "main": "index.js", "directories": { From ca261d48e27cc424dd4c3e1074784e4273c0982f Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 24 Apr 2018 13:23:52 -0700 Subject: [PATCH 49/52] rm build dir --- build/EscapableApp.sol.js | 61 - build/EscapableApp_all.sol | 680 - build/ILiquidPledgingPlugin.sol.js | 7 - build/ILiquidPledgingPlugin_all.sol | 87 - build/LPConstants.sol.js | 14 - build/LPConstants_all.sol | 35 - build/LPFactory.sol.js | 184 - build/LPFactory_all.sol | 3804 ----- build/LPVault.sol.js | 75 - build/LPVault_all.sol | 1070 -- build/LiquidPledging.sol.js | 96 - build/LiquidPledgingACLHelpers.sol.js | 7 - build/LiquidPledgingACLHelpers_all.sol | 25 - build/LiquidPledgingBase.sol.js | 92 - build/LiquidPledgingBase_all.sol | 2767 ---- build/LiquidPledgingMock.sol.js | 135 - build/LiquidPledgingMock_all.sol | 2836 ---- build/LiquidPledgingPlugins.sol.js | 72 - build/LiquidPledgingPlugins_all.sol | 798 - build/LiquidPledgingStorage.sol.js | 14 - build/LiquidPledgingStorage_all.sol | 156 - build/LiquidPledging_all.sol | 2667 ---- build/PledgeAdmins.sol.js | 76 - build/PledgeAdmins_all.sol | 1435 -- build/Pledges.sol.js | 68 - build/Pledges_all.sol | 919 -- build/StandardToken.sol.js | 7 - build/StandardToken_all.sol | 155 - build/TestSimpleDelegatePlugin.sol.js | 106 - build/TestSimpleDelegatePlugin_all.sol | 2510 --- build/TestSimpleProjectPlugin.sol.js | 100 - build/TestSimpleProjectPluginFactory.sol.js | 104 - build/TestSimpleProjectPluginFactory_all.sol | 2470 --- build/TestSimpleProjectPlugin_all.sol | 2480 --- build/contracts.js | 20 - build/solcStandardInput.json | 328 - build/solcStandardOutput.json | 13838 ----------------- 37 files changed, 40298 deletions(-) delete mode 100644 build/EscapableApp.sol.js delete mode 100644 build/EscapableApp_all.sol delete mode 100644 build/ILiquidPledgingPlugin.sol.js delete mode 100644 build/ILiquidPledgingPlugin_all.sol delete mode 100644 build/LPConstants.sol.js delete mode 100644 build/LPConstants_all.sol delete mode 100644 build/LPFactory.sol.js delete mode 100644 build/LPFactory_all.sol delete mode 100644 build/LPVault.sol.js delete mode 100644 build/LPVault_all.sol delete mode 100644 build/LiquidPledging.sol.js delete mode 100644 build/LiquidPledgingACLHelpers.sol.js delete mode 100644 build/LiquidPledgingACLHelpers_all.sol delete mode 100644 build/LiquidPledgingBase.sol.js delete mode 100644 build/LiquidPledgingBase_all.sol delete mode 100644 build/LiquidPledgingMock.sol.js delete mode 100644 build/LiquidPledgingMock_all.sol delete mode 100644 build/LiquidPledgingPlugins.sol.js delete mode 100644 build/LiquidPledgingPlugins_all.sol delete mode 100644 build/LiquidPledgingStorage.sol.js delete mode 100644 build/LiquidPledgingStorage_all.sol delete mode 100644 build/LiquidPledging_all.sol delete mode 100644 build/PledgeAdmins.sol.js delete mode 100644 build/PledgeAdmins_all.sol delete mode 100644 build/Pledges.sol.js delete mode 100644 build/Pledges_all.sol delete mode 100644 build/StandardToken.sol.js delete mode 100644 build/StandardToken_all.sol delete mode 100644 build/TestSimpleDelegatePlugin.sol.js delete mode 100644 build/TestSimpleDelegatePlugin_all.sol delete mode 100644 build/TestSimpleProjectPlugin.sol.js delete mode 100644 build/TestSimpleProjectPluginFactory.sol.js delete mode 100644 build/TestSimpleProjectPluginFactory_all.sol delete mode 100644 build/TestSimpleProjectPlugin_all.sol delete mode 100644 build/contracts.js delete mode 100644 build/solcStandardInput.json delete mode 100644 build/solcStandardOutput.json diff --git a/build/EscapableApp.sol.js b/build/EscapableApp.sol.js deleted file mode 100644 index 7bb1b3e..0000000 --- a/build/EscapableApp.sol.js +++ /dev/null @@ -1,61 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/EscapableApp_all.sol b/build/EscapableApp_all.sol deleted file mode 100644 index 82e1fa9..0000000 --- a/build/EscapableApp_all.sol +++ /dev/null @@ -1,680 +0,0 @@ - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} diff --git a/build/ILiquidPledgingPlugin.sol.js b/build/ILiquidPledgingPlugin.sol.js deleted file mode 100644 index 1f80ff0..0000000 --- a/build/ILiquidPledgingPlugin.sol.js +++ /dev/null @@ -1,7 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/ILiquidPledgingPlugin_all.sol b/build/ILiquidPledgingPlugin_all.sol deleted file mode 100644 index 5889987..0000000 --- a/build/ILiquidPledgingPlugin_all.sol +++ /dev/null @@ -1,87 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} diff --git a/build/LPConstants.sol.js b/build/LPConstants.sol.js deleted file mode 100644 index 7a20b13..0000000 --- a/build/LPConstants.sol.js +++ /dev/null @@ -1,14 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" -exports.KernelConstantsRuntimeByteCode = "0x6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" -exports.KernelStorageAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.KernelStorageByteCode = "0x6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" -exports.KernelStorageRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" -exports['_@aragon/os/contracts/kernel/KernelStorage.sol_keccak256'] = "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e" -exports.LPConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LPConstantsByteCode = "0x6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" -exports.LPConstantsRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" -exports['_./contracts/LPConstants.sol_keccak256'] = "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPConstants_all.sol b/build/LPConstants_all.sol deleted file mode 100644 index 3325d40..0000000 --- a/build/LPConstants_all.sol +++ /dev/null @@ -1,35 +0,0 @@ - - -///File: @aragon/os/contracts/kernel/KernelStorage.sol - -pragma solidity 0.4.18; - - -contract KernelConstants { - bytes32 constant public CORE_NAMESPACE = keccak256("core"); - bytes32 constant public APP_BASES_NAMESPACE = keccak256("base"); - bytes32 constant public APP_ADDR_NAMESPACE = keccak256("app"); - - bytes32 constant public KERNEL_APP_ID = keccak256("kernel.aragonpm.eth"); - bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID); - - bytes32 constant public ACL_APP_ID = keccak256("acl.aragonpm.eth"); - bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID); -} - - -contract KernelStorage is KernelConstants { - mapping (bytes32 => address) public apps; -} - - -///File: ./contracts/LPConstants.sol - -pragma solidity ^0.4.18; - - - -contract LPConstants is KernelConstants { - bytes32 constant public VAULT_APP_ID = keccak256("vault"); - bytes32 constant public LP_APP_ID = keccak256("liquidPledging"); -} \ No newline at end of file diff --git a/build/LPFactory.sol.js b/build/LPFactory.sol.js deleted file mode 100644 index 86596cd..0000000 --- a/build/LPFactory.sol.js +++ /dev/null @@ -1,184 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" -exports.KernelConstantsRuntimeByteCode = "0x6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" -exports.KernelStorageAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.KernelStorageByteCode = "0x6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" -exports.KernelStorageRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" -exports['_@aragon/os/contracts/kernel/KernelStorage.sol_keccak256'] = "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.IAppProxyAbi = [{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IAppProxyByteCode = "0x" -exports.IAppProxyRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/apps/IAppProxy.sol_keccak256'] = "0x4d5f398f887030d6d0b5045e0424b59d58abd718143289afcaf3e160d6c91736" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.DelegateProxyAbi = [] -exports.DelegateProxyByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" -exports.DelegateProxyRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" -exports['_@aragon/os/contracts/common/DelegateProxy.sol_keccak256'] = "0x81bab220700a9a5def3ac54278ccec046be0b1c333dba9567f7175e358414d87" -exports.AppProxyBaseAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] -exports.AppProxyBaseByteCode = "0x" -exports.AppProxyBaseRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/apps/AppProxyBase.sol_keccak256'] = "0x907218cac02c5f7a10873eb30fb1ffaecdd93527a0ff7e2f0305590bf585d06b" -exports.AppProxyUpgradeableAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pinnedCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] -exports.AppProxyUpgradeableByteCode = "0x6060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" -exports.AppProxyUpgradeableRuntimeByteCode = "0x6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" -exports['_@aragon/os/contracts/apps/AppProxyUpgradeable.sol_keccak256'] = "0x4613af6e313048b7de649d54630276fb18154dac5674f057109f0e0591f11cb2" -exports.AppProxyPinnedAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] -exports.AppProxyPinnedByteCode = "0x6060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" -exports.AppProxyPinnedRuntimeByteCode = "0x6060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" -exports['_@aragon/os/contracts/apps/AppProxyPinned.sol_keccak256'] = "0xfe66e88413adc4d60ae53352046bd23ebd0aeb3120599d445df19caa8b095c26" -exports.AppProxyFactoryAbi = [{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"}] -exports.AppProxyFactoryByteCode = "0x6060604052341561000f57600080fd5b61134b8061001e6000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" -exports.AppProxyFactoryRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" -exports['_@aragon/os/contracts/factory/AppProxyFactory.sol_keccak256'] = "0xa5314f57f93d8e633724bd9f94ad43f127c5b5466dcd0ef32fe0f78d5d431592" -exports.KernelAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_baseAcl","type":"address"},{"name":"_permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newPinnedAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_namespace","type":"bytes32"},{"name":"_name","type":"bytes32"},{"name":"_app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.KernelByteCode = "0x6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" -exports.KernelRuntimeByteCode = "0x606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" -exports['_@aragon/os/contracts/kernel/Kernel.sol_keccak256'] = "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d" -exports.KernelProxyAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernelImpl","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] -exports.KernelProxyByteCode = "0x6060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029" -exports.KernelProxyRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029" -exports['_@aragon/os/contracts/kernel/KernelProxy.sol_keccak256'] = "0xe9baab334f8e30a2d9a4fb21a54b46a6603597f812deef2ec36215491e6dcf11" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.ACLAbi = [{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"grantPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CREATE_PERMISSIONS_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"},{"name":"_params","type":"uint256[]"}],"name":"grantPermissionP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"},{"name":"","type":"uint256"}],"name":"permissionParams","outputs":[{"name":"id","type":"uint8"},{"name":"op","type":"uint8"},{"name":"value","type":"uint240"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"revokePermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newManager","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"setPermissionManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"}],"name":"getPermissionManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entity","type":"address"},{"name":"_app","type":"address"},{"name":"_role","type":"bytes32"},{"name":"_manager","type":"address"}],"name":"createPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EMPTY_PARAM_HASH","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"uint256[]"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"entity","type":"address"},{"indexed":true,"name":"app","type":"address"},{"indexed":true,"name":"role","type":"bytes32"},{"indexed":false,"name":"allowed","type":"bool"}],"name":"SetPermission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"app","type":"address"},{"indexed":true,"name":"role","type":"bytes32"},{"indexed":true,"name":"manager","type":"address"}],"name":"ChangePermissionManager","type":"event"}] -exports.ACLByteCode = "0x6060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.ACLRuntimeByteCode = "0x6060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.ACLOracleAbi = [{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.ACLOracleByteCode = "0x" -exports.ACLOracleRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/ACL.sol_keccak256'] = "0x7e636d70192cc2b18d00df37ff91e1f3b4e5a6dfb0c92f9d90441dceac1f2a25" -exports.EVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REGISTRY_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"executors","outputs":[{"name":"executor","type":"address"},{"name":"enabled","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryByteCode = "0x6060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029" -exports.EVMScriptRegistryRuntimeByteCode = "0x6060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRegistry.sol_keccak256'] = "0xd2b72c173913aa2b869e6185843e3796e0532b9744a10fdf0ac7ec532e5b0fff" -exports.CallsScriptAbi = [{"constant":false,"inputs":[{"name":"_script","type":"bytes"},{"name":"_input","type":"bytes"},{"name":"_blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"dst","type":"address"}],"name":"LogScriptCall","type":"event"}] -exports.CallsScriptByteCode = "0x6060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029" -exports.CallsScriptRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029" -exports['_@aragon/os/contracts/evmscript/executors/CallsScript.sol_keccak256'] = "0x72ff2681f5dfec19b05d235d841042a78a4682a8368e6bb16516447495161014" -exports.DelegateScriptAbi = [{"constant":false,"inputs":[{"name":"_script","type":"bytes"},{"name":"_input","type":"bytes"},{"name":"_blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.DelegateScriptByteCode = "0x6060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029" -exports.DelegateScriptRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029" -exports.DelegateScriptTargetAbi = [{"constant":false,"inputs":[],"name":"exec","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.DelegateScriptTargetByteCode = "0x" -exports.DelegateScriptTargetRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/executors/DelegateScript.sol_keccak256'] = "0x1f29ea7d6d6f912b392f3fc4b9dad4cfbe5f2133fbdf21e8233a999a6726858a" -exports.DeployDelegateScriptAbi = [{"constant":false,"inputs":[{"name":"_script","type":"bytes"},{"name":"_input","type":"bytes"},{"name":"_blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.DeployDelegateScriptByteCode = "0x6060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029" -exports.DeployDelegateScriptRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029" -exports['_@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol_keccak256'] = "0x664ae058059e6b64e38a2f0c56c4c1603de64de56270fab1992cf64d721f1233" -exports.EVMScriptRegistryFactoryAbi = [{"constant":true,"inputs":[],"name":"baseReg","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseDeployDel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dao","type":"address"},{"name":"_root","type":"address"}],"name":"newEVMScriptRegistry","outputs":[{"name":"reg","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseCalls","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"baseDel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"}] -exports.EVMScriptRegistryFactoryByteCode = "0x6060604052341561000f57600080fd5b61001761010c565b604051809103906000f080151561002d57600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561005561011d565b604051809103906000f080151561006b57600080fd5b60018054600160a060020a031916600160a060020a039290921691909117905561009361012e565b604051809103906000f08015156100a957600080fd5b60028054600160a060020a031916600160a060020a03929092169190911790556100d161013f565b604051809103906000f08015156100e757600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055610150565b604051610aac8062001cb983390190565b6040516103b1806200276583390190565b6040516104b08062002b1683390190565b60405161050d8062002fc683390190565b611b5980620001606000396000f3006060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e972200296060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a9949417665585108200296060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb900296060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd442541100296060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029" -exports.EVMScriptRegistryFactoryRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e97220029" -exports['_@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol_keccak256'] = "0x591ccf2f0ddfc70935e736bd0072b7319d07f29fa1d46a4f18231d6aa40781fa" -exports.DAOFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_regFactory","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] -exports.DAOFactoryByteCode = "0x6060604052341561000f57600080fd5b60405160208061439683398101604052808051915061002e90506100c7565b604051809103906000f080151561004457600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561006c6100d7565b604051809103906000f080151561008257600080fd5b60018054600160a060020a031916600160a060020a039283161790558116156100c15760028054600160a060020a031916600160a060020a0383161790555b506100e7565b604051611fdc80610dd583390190565b6040516115e580612db183390190565b610cdf806100f66000396000f3006060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca1200296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.DAOFactoryRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca120029" -exports['_@aragon/os/contracts/factory/DAOFactory.sol_keccak256'] = "0x60585270378bc1c725befb3449f4c48a744155bdf8fc659b7a72964247d36b78" -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingByteCode = "0x" -exports.ILiquidPledgingRuntimeByteCode = "0x" -exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LPVaultByteCode = "0x606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" -exports.LPVaultRuntimeByteCode = "0x6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" -exports['_./contracts/LPVault.sol_keccak256'] = "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda" -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports.LPConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LPConstantsByteCode = "0x6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" -exports.LPConstantsRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029" -exports['_./contracts/LPConstants.sol_keccak256'] = "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314" -exports.LPFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"newLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vaultBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vaultBase","type":"address"},{"name":"_lpBase","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"vault","type":"address"}],"name":"DeployVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"liquidPledging","type":"address"}],"name":"DeployLiquidPledging","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] -exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd400296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd40029" -exports['_./contracts/LPFactory.sol_keccak256'] = "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc" -exports.LPFactoryAbi = [{"constant":true,"inputs":[],"name":"baseACL","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"}],"name":"newDAO","outputs":[{"name":"dao","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LP_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"regFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseKernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_root","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"newLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VAULT_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vaultBase","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_vaultBase","type":"address"},{"name":"_lpBase","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"vault","type":"address"}],"name":"DeployVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"liquidPledging","type":"address"}],"name":"DeployLiquidPledging","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dao","type":"address"}],"name":"DeployDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reg","type":"address"}],"name":"DeployEVMScriptRegistry","type":"event"}] -exports.LPFactoryByteCode = "0x606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd400296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029" -exports.LPFactoryRuntimeByteCode = "0x6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd40029" -exports['_./contracts/LPFactory.sol_keccak256'] = "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPFactory_all.sol b/build/LPFactory_all.sol deleted file mode 100644 index b304cff..0000000 --- a/build/LPFactory_all.sol +++ /dev/null @@ -1,3804 +0,0 @@ - - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/kernel/KernelStorage.sol - -pragma solidity 0.4.18; - - -contract KernelConstants { - bytes32 constant public CORE_NAMESPACE = keccak256("core"); - bytes32 constant public APP_BASES_NAMESPACE = keccak256("base"); - bytes32 constant public APP_ADDR_NAMESPACE = keccak256("app"); - - bytes32 constant public KERNEL_APP_ID = keccak256("kernel.aragonpm.eth"); - bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID); - - bytes32 constant public ACL_APP_ID = keccak256("acl.aragonpm.eth"); - bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID); -} - - -contract KernelStorage is KernelConstants { - mapping (bytes32 => address) public apps; -} - - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/IAppProxy.sol - -pragma solidity 0.4.18; - -interface IAppProxy { - function isUpgradeable() public pure returns (bool); - function getCode() public view returns (address); -} - - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/common/DelegateProxy.sol - -pragma solidity 0.4.18; - - -contract DelegateProxy { - /** - * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!) - * @param _dst Destination address to perform the delegatecall - * @param _calldata Calldata for the delegatecall - */ - function delegatedFwd(address _dst, bytes _calldata) internal { - require(isContract(_dst)); - assembly { - let result := delegatecall(sub(gas, 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0) - let size := returndatasize - - let ptr := mload(0x40) - returndatacopy(ptr, 0, size) - - // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. - // if the call returned error data, forward it - switch result case 0 { revert(ptr, size) } - default { return(ptr, size) } - } - } - - function isContract(address _target) internal view returns (bool) { - uint256 size; - assembly { size := extcodesize(_target) } - return size > 0; - } -} - - -///File: @aragon/os/contracts/apps/AppProxyBase.sol - -pragma solidity 0.4.18; - - - - - - - -contract AppProxyBase is IAppProxy, AppStorage, DelegateProxy, KernelConstants { - /** - * @dev Initialize AppProxy - * @param _kernel Reference to organization kernel for the app - * @param _appId Identifier for app - * @param _initializePayload Payload for call to be made after setup to initialize - */ - function AppProxyBase(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public { - kernel = _kernel; - appId = _appId; - - // Implicit check that kernel is actually a Kernel - // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to - // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on - // it. - address appCode = getAppBase(appId); - - // If initialize payload is provided, it will be executed - if (_initializePayload.length > 0) { - require(isContract(appCode)); - // Cannot make delegatecall as a delegateproxy.delegatedFwd as it - // returns ending execution context and halts contract deployment - require(appCode.delegatecall(_initializePayload)); - } - } - - function getAppBase(bytes32 _appId) internal view returns (address) { - return kernel.getApp(keccak256(APP_BASES_NAMESPACE, _appId)); - } - - function () payable public { - address target = getCode(); - require(target != 0); // if app code hasn't been set yet, don't call - delegatedFwd(target, msg.data); - } -} - -///File: @aragon/os/contracts/apps/AppProxyUpgradeable.sol - -pragma solidity 0.4.18; - - - - -contract AppProxyUpgradeable is AppProxyBase { - address public pinnedCode; - - /** - * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app) - * @param _kernel Reference to organization kernel for the app - * @param _appId Identifier for app - * @param _initializePayload Payload for call to be made after setup to initialize - */ - function AppProxyUpgradeable(IKernel _kernel, bytes32 _appId, bytes _initializePayload) - AppProxyBase(_kernel, _appId, _initializePayload) public - { - - } - - function getCode() public view returns (address) { - return getAppBase(appId); - } - - function isUpgradeable() public pure returns (bool) { - return true; - } -} - - -///File: @aragon/os/contracts/apps/AppProxyPinned.sol - -pragma solidity 0.4.18; - - - - -contract AppProxyPinned is AppProxyBase { - /** - * @dev Initialize AppProxyPinned (makes it an un-upgradeable Aragon app) - * @param _kernel Reference to organization kernel for the app - * @param _appId Identifier for app - * @param _initializePayload Payload for call to be made after setup to initialize - */ - function AppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) - AppProxyBase(_kernel, _appId, _initializePayload) public - { - pinnedCode = getAppBase(appId); - require(pinnedCode != address(0)); - } - - function getCode() public view returns (address) { - return pinnedCode; - } - - function isUpgradeable() public pure returns (bool) { - return false; - } - - function () payable public { - delegatedFwd(getCode(), msg.data); - } -} - -///File: @aragon/os/contracts/factory/AppProxyFactory.sol - -pragma solidity 0.4.18; - - - - - -contract AppProxyFactory { - event NewAppProxy(address proxy); - - function newAppProxy(IKernel _kernel, bytes32 _appId) public returns (AppProxyUpgradeable) { - return newAppProxy(_kernel, _appId, new bytes(0)); - } - - function newAppProxy(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyUpgradeable) { - AppProxyUpgradeable proxy = new AppProxyUpgradeable(_kernel, _appId, _initializePayload); - NewAppProxy(address(proxy)); - return proxy; - } - - function newAppProxyPinned(IKernel _kernel, bytes32 _appId) public returns (AppProxyPinned) { - return newAppProxyPinned(_kernel, _appId, new bytes(0)); - } - - function newAppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyPinned) { - AppProxyPinned proxy = new AppProxyPinned(_kernel, _appId, _initializePayload); - NewAppProxy(address(proxy)); - return proxy; - } -} - - -///File: @aragon/os/contracts/kernel/Kernel.sol - -pragma solidity 0.4.18; - - - - - - - - - -contract Kernel is IKernel, KernelStorage, Initializable, AppProxyFactory, ACLSyntaxSugar { - bytes32 constant public APP_MANAGER_ROLE = bytes32(1); - - /** - * @dev Initialize can only be called once. It saves the block number in which it was initialized. - * @notice Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions - * @param _baseAcl Address of base ACL app - * @param _permissionsCreator Entity that will be given permission over createPermission - */ - function initialize(address _baseAcl, address _permissionsCreator) onlyInit public { - initialized(); - - IACL acl = IACL(newAppProxy(this, ACL_APP_ID)); - - _setApp(APP_BASES_NAMESPACE, ACL_APP_ID, _baseAcl); - _setApp(APP_ADDR_NAMESPACE, ACL_APP_ID, acl); - - acl.initialize(_permissionsCreator); - } - - /** - * @dev Create a new instance of an app linked to this kernel and set its base - * implementation if it was not already set - * @param _name Name of the app - * @param _appBase Address of the app's base implementation - * @return AppProxy instance - */ - function newAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { - _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); - appProxy = newAppProxy(this, _name); - } - - /** - * @dev Create a new pinned instance of an app linked to this kernel and set - * its base implementation if it was not already set - * @param _name Name of the app - * @param _appBase Address of the app's base implementation - * @return AppProxy instance - */ - function newPinnedAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { - _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); - appProxy = newAppProxyPinned(this, _name); - } - - /** - * @dev Set the resolving address of an app instance or base implementation - * @param _namespace App namespace to use - * @param _name Name of the app - * @param _app Address of the app - * @return ID of app - */ - function setApp(bytes32 _namespace, bytes32 _name, address _app) auth(APP_MANAGER_ROLE, arr(_namespace, _name)) kernelIntegrity public returns (bytes32 id) { - return _setApp(_namespace, _name, _app); - } - - /** - * @dev Get the address of an app instance or base implementation - * @param _id App identifier - * @return Address of the app - */ - function getApp(bytes32 _id) public view returns (address) { - return apps[_id]; - } - - /** - * @dev Get the installed ACL app - * @return ACL app - */ - function acl() public view returns (IACL) { - return IACL(getApp(ACL_APP)); - } - - /** - * @dev Function called by apps to check ACL on kernel or to check permission status - * @param _who Sender of the original call - * @param _where Address of the app - * @param _what Identifier for a group of actions in app - * @param _how Extra data for ACL auth - * @return boolean indicating whether the ACL allows the role or not - */ - function hasPermission(address _who, address _where, bytes32 _what, bytes _how) public view returns (bool) { - return acl().hasPermission(_who, _where, _what, _how); - } - - function _setApp(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { - id = keccak256(_namespace, _name); - apps[id] = _app; - SetApp(_namespace, _name, id, _app); - } - - function _setAppIfNew(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { - id = keccak256(_namespace, _name); - - if (_app != address(0)) { - address app = getApp(id); - if (app != address(0)) { - require(app == _app); - } else { - apps[id] = _app; - SetApp(_namespace, _name, id, _app); - } - } - } - - modifier auth(bytes32 _role, uint256[] memory params) { - bytes memory how; - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - // Params is invalid from this point fwd - require(hasPermission(msg.sender, address(this), _role, how)); - _; - } - - modifier kernelIntegrity { - _; // After execution check integrity - address kernel = getApp(KERNEL_APP); - uint256 size; - assembly { size := extcodesize(kernel) } - require(size > 0); - } -} - - -///File: @aragon/os/contracts/kernel/KernelProxy.sol - -pragma solidity 0.4.18; - - - - - -contract KernelProxy is KernelStorage, DelegateProxy { - /** - * @dev KernelProxy is a proxy contract to a kernel implementation. The implementation - * can update the reference, which effectively upgrades the contract - * @param _kernelImpl Address of the contract used as implementation for kernel - */ - function KernelProxy(address _kernelImpl) public { - apps[keccak256(CORE_NAMESPACE, KERNEL_APP_ID)] = _kernelImpl; - } - - /** - * @dev All calls made to the proxy are forwarded to the kernel implementation via a delegatecall - * @return Any bytes32 value the implementation returns - */ - function () payable public { - delegatedFwd(apps[KERNEL_APP], msg.data); - } -} - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: @aragon/os/contracts/acl/ACL.sol - -pragma solidity 0.4.18; - - - - - - -interface ACLOracle { - function canPerform(address who, address where, bytes32 what) public view returns (bool); -} - - -contract ACL is IACL, AragonApp, ACLHelpers { - bytes32 constant public CREATE_PERMISSIONS_ROLE = bytes32(1); - - // whether a certain entity has a permission - mapping (bytes32 => bytes32) permissions; // 0 for no permission, or parameters id - mapping (bytes32 => Param[]) public permissionParams; - - // who is the manager of a permission - mapping (bytes32 => address) permissionManager; - - enum Op { NONE, EQ, NEQ, GT, LT, GTE, LTE, NOT, AND, OR, XOR, IF_ELSE, RET } // op types - - struct Param { - uint8 id; - uint8 op; - uint240 value; // even though value is an uint240 it can store addresses - // in the case of 32 byte hashes losing 2 bytes precision isn't a huge deal - // op and id take less than 1 byte each so it can be kept in 1 sstore - } - - uint8 constant BLOCK_NUMBER_PARAM_ID = 200; - uint8 constant TIMESTAMP_PARAM_ID = 201; - uint8 constant SENDER_PARAM_ID = 202; - uint8 constant ORACLE_PARAM_ID = 203; - uint8 constant LOGIC_OP_PARAM_ID = 204; - uint8 constant PARAM_VALUE_PARAM_ID = 205; - // TODO: Add execution times param type? - - bytes32 constant public EMPTY_PARAM_HASH = keccak256(uint256(0)); - address constant ANY_ENTITY = address(-1); - - modifier onlyPermissionManager(address _app, bytes32 _role) { - require(msg.sender == getPermissionManager(_app, _role)); - _; - } - - event SetPermission(address indexed entity, address indexed app, bytes32 indexed role, bool allowed); - event ChangePermissionManager(address indexed app, bytes32 indexed role, address indexed manager); - - /** - * @dev Initialize can only be called once. It saves the block number in which it was initialized. - * @notice Initializes an ACL instance and sets `_permissionsCreator` as the entity that can create other permissions - * @param _permissionsCreator Entity that will be given permission over createPermission - */ - function initialize(address _permissionsCreator) onlyInit public { - initialized(); - require(msg.sender == address(kernel)); - - _createPermission(_permissionsCreator, this, CREATE_PERMISSIONS_ROLE, _permissionsCreator); - } - - /** - * @dev Creates a permission that wasn't previously set. Access is limited by the ACL. - * If a created permission is removed it is possible to reset it with createPermission. - * @notice Create a new permission granting `_entity` the ability to perform actions of role `_role` on `_app` (setting `_manager` as the permission manager) - * @param _entity Address of the whitelisted entity that will be able to perform the role - * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL) - * @param _role Identifier for the group of actions in app given access to perform - * @param _manager Address of the entity that will be able to grant and revoke the permission further. - */ - function createPermission(address _entity, address _app, bytes32 _role, address _manager) external { - require(hasPermission(msg.sender, address(this), CREATE_PERMISSIONS_ROLE)); - - _createPermission(_entity, _app, _role, _manager); - } - - /** - * @dev Grants permission if allowed. This requires `msg.sender` to be the permission manager - * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app` - * @param _entity Address of the whitelisted entity that will be able to perform the role - * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL) - * @param _role Identifier for the group of actions in app given access to perform - */ - function grantPermission(address _entity, address _app, bytes32 _role) - external - { - grantPermissionP(_entity, _app, _role, new uint256[](0)); - } - - /** - * @dev Grants a permission with parameters if allowed. This requires `msg.sender` to be the permission manager - * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app` - * @param _entity Address of the whitelisted entity that will be able to perform the role - * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL) - * @param _role Identifier for the group of actions in app given access to perform - * @param _params Permission parameters - */ - function grantPermissionP(address _entity, address _app, bytes32 _role, uint256[] _params) - onlyPermissionManager(_app, _role) - public - { - require(!hasPermission(_entity, _app, _role)); - - bytes32 paramsHash = _params.length > 0 ? _saveParams(_params) : EMPTY_PARAM_HASH; - _setPermission(_entity, _app, _role, paramsHash); - } - - /** - * @dev Revokes permission if allowed. This requires `msg.sender` to be the the permission manager - * @notice Revokes `_entity` the ability to perform actions of role `_role` on `_app` - * @param _entity Address of the whitelisted entity to revoke access from - * @param _app Address of the app in which the role will be revoked - * @param _role Identifier for the group of actions in app being revoked - */ - function revokePermission(address _entity, address _app, bytes32 _role) - onlyPermissionManager(_app, _role) - external - { - require(hasPermission(_entity, _app, _role)); - - _setPermission(_entity, _app, _role, bytes32(0)); - } - - /** - * @notice Sets `_newManager` as the manager of the permission `_role` in `_app` - * @param _newManager Address for the new manager - * @param _app Address of the app in which the permission management is being transferred - * @param _role Identifier for the group of actions being transferred - */ - function setPermissionManager(address _newManager, address _app, bytes32 _role) - onlyPermissionManager(_app, _role) - external - { - _setPermissionManager(_newManager, _app, _role); - } - - /** - * @dev Get manager for permission - * @param _app Address of the app - * @param _role Identifier for a group of actions in app - * @return address of the manager for the permission - */ - function getPermissionManager(address _app, bytes32 _role) public view returns (address) { - return permissionManager[roleHash(_app, _role)]; - } - - /** - * @dev Function called by apps to check ACL on kernel or to check permission statu - * @param _who Sender of the original call - * @param _where Address of the app - * @param _where Identifier for a group of actions in app - * @param _how Permission parameters - * @return boolean indicating whether the ACL allows the role or not - */ - function hasPermission(address _who, address _where, bytes32 _what, bytes memory _how) public view returns (bool) { - uint256[] memory how; - uint256 intsLength = _how.length / 32; - assembly { - how := _how // forced casting - mstore(how, intsLength) - } - // _how is invalid from this point fwd - return hasPermission(_who, _where, _what, how); - } - - function hasPermission(address _who, address _where, bytes32 _what, uint256[] memory _how) public view returns (bool) { - bytes32 whoParams = permissions[permissionHash(_who, _where, _what)]; - if (whoParams != bytes32(0) && evalParams(whoParams, _who, _where, _what, _how)) { - return true; - } - - bytes32 anyParams = permissions[permissionHash(ANY_ENTITY, _where, _what)]; - if (anyParams != bytes32(0) && evalParams(anyParams, ANY_ENTITY, _where, _what, _how)) { - return true; - } - - return false; - } - - function hasPermission(address _who, address _where, bytes32 _what) public view returns (bool) { - uint256[] memory empty = new uint256[](0); - return hasPermission(_who, _where, _what, empty); - } - - /** - * @dev Internal createPermission for access inside the kernel (on instantiation) - */ - function _createPermission(address _entity, address _app, bytes32 _role, address _manager) internal { - // only allow permission creation (or re-creation) when there is no manager - require(getPermissionManager(_app, _role) == address(0)); - - _setPermission(_entity, _app, _role, EMPTY_PARAM_HASH); - _setPermissionManager(_manager, _app, _role); - } - - /** - * @dev Internal function called to actually save the permission - */ - function _setPermission(address _entity, address _app, bytes32 _role, bytes32 _paramsHash) internal { - permissions[permissionHash(_entity, _app, _role)] = _paramsHash; - - SetPermission(_entity, _app, _role, _paramsHash != bytes32(0)); - } - - function _saveParams(uint256[] _encodedParams) internal returns (bytes32) { - bytes32 paramHash = keccak256(_encodedParams); - Param[] storage params = permissionParams[paramHash]; - - if (params.length == 0) { // params not saved before - for (uint256 i = 0; i < _encodedParams.length; i++) { - uint256 encodedParam = _encodedParams[i]; - Param memory param = Param(decodeParamId(encodedParam), decodeParamOp(encodedParam), uint240(encodedParam)); - params.push(param); - } - } - - return paramHash; - } - - function evalParams( - bytes32 _paramsHash, - address _who, - address _where, - bytes32 _what, - uint256[] _how - ) internal view returns (bool) - { - if (_paramsHash == EMPTY_PARAM_HASH) { - return true; - } - - return evalParam(_paramsHash, 0, _who, _where, _what, _how); - } - - function evalParam( - bytes32 _paramsHash, - uint32 _paramId, - address _who, - address _where, - bytes32 _what, - uint256[] _how - ) internal view returns (bool) - { - if (_paramId >= permissionParams[_paramsHash].length) { - return false; // out of bounds - } - - Param memory param = permissionParams[_paramsHash][_paramId]; - - if (param.id == LOGIC_OP_PARAM_ID) { - return evalLogic(param, _paramsHash, _who, _where, _what, _how); - } - - uint256 value; - uint256 comparedTo = uint256(param.value); - - // get value - if (param.id == ORACLE_PARAM_ID) { - value = ACLOracle(param.value).canPerform(_who, _where, _what) ? 1 : 0; - comparedTo = 1; - } else if (param.id == BLOCK_NUMBER_PARAM_ID) { - value = blockN(); - } else if (param.id == TIMESTAMP_PARAM_ID) { - value = time(); - } else if (param.id == SENDER_PARAM_ID) { - value = uint256(msg.sender); - } else if (param.id == PARAM_VALUE_PARAM_ID) { - value = uint256(param.value); - } else { - if (param.id >= _how.length) { - return false; - } - value = uint256(uint240(_how[param.id])); // force lost precision - } - - if (Op(param.op) == Op.RET) { - return uint256(value) > 0; - } - - return compare(value, Op(param.op), comparedTo); - } - - function evalLogic(Param _param, bytes32 _paramsHash, address _who, address _where, bytes32 _what, uint256[] _how) internal view returns (bool) { - if (Op(_param.op) == Op.IF_ELSE) { - var (condition, success, failure) = decodeParamsList(uint256(_param.value)); - bool result = evalParam(_paramsHash, condition, _who, _where, _what, _how); - - return evalParam(_paramsHash, result ? success : failure, _who, _where, _what, _how); - } - - var (v1, v2,) = decodeParamsList(uint256(_param.value)); - bool r1 = evalParam(_paramsHash, v1, _who, _where, _what, _how); - - if (Op(_param.op) == Op.NOT) { - return !r1; - } - - if (r1 && Op(_param.op) == Op.OR) { - return true; - } - - if (!r1 && Op(_param.op) == Op.AND) { - return false; - } - - bool r2 = evalParam(_paramsHash, v2, _who, _where, _what, _how); - - if (Op(_param.op) == Op.XOR) { - return (r1 && !r2) || (!r1 && r2); - } - - return r2; // both or and and depend on result of r2 after checks - } - - function compare(uint256 _a, Op _op, uint256 _b) internal pure returns (bool) { - if (_op == Op.EQ) return _a == _b; // solium-disable-line lbrace - if (_op == Op.NEQ) return _a != _b; // solium-disable-line lbrace - if (_op == Op.GT) return _a > _b; // solium-disable-line lbrace - if (_op == Op.LT) return _a < _b; // solium-disable-line lbrace - if (_op == Op.GTE) return _a >= _b; // solium-disable-line lbrace - if (_op == Op.LTE) return _a <= _b; // solium-disable-line lbrace - return false; - } - - /** - * @dev Internal function that sets management - */ - function _setPermissionManager(address _newManager, address _app, bytes32 _role) internal { - permissionManager[roleHash(_app, _role)] = _newManager; - ChangePermissionManager(_app, _role, _newManager); - } - - function roleHash(address _where, bytes32 _what) pure internal returns (bytes32) { - return keccak256(uint256(1), _where, _what); - } - - function permissionHash(address _who, address _where, bytes32 _what) pure internal returns (bytes32) { - return keccak256(uint256(2), _who, _where, _what); - } - - function time() internal view returns (uint64) { return uint64(block.timestamp); } // solium-disable-line security/no-block-members - - function blockN() internal view returns (uint256) { return block.number; } -} - - -///File: @aragon/os/contracts/evmscript/EVMScriptRegistry.sol - -pragma solidity 0.4.18; - - - - - - - - -contract EVMScriptRegistry is IEVMScriptRegistry, EVMScriptRegistryConstants, AragonApp { - using ScriptHelpers for bytes; - - // WARN: Manager can censor all votes and the like happening in an org - bytes32 constant public REGISTRY_MANAGER_ROLE = bytes32(1); - - struct ExecutorEntry { - address executor; - bool enabled; - } - - ExecutorEntry[] public executors; - - function initialize() onlyInit public { - initialized(); - // Create empty record to begin executor IDs at 1 - executors.push(ExecutorEntry(address(0), false)); - } - - function addScriptExecutor(address _executor) external auth(REGISTRY_MANAGER_ROLE) returns (uint id) { - return executors.push(ExecutorEntry(_executor, true)); - } - - function disableScriptExecutor(uint256 _executorId) external auth(REGISTRY_MANAGER_ROLE) { - executors[_executorId].enabled = false; - } - - function getScriptExecutor(bytes _script) public view returns (address) { - uint256 id = _script.getSpecId(); - - if (id == 0 || id >= executors.length) { - return address(0); - } - - ExecutorEntry storage entry = executors[id]; - return entry.enabled ? entry.executor : address(0); - } -} - - -///File: @aragon/os/contracts/evmscript/executors/CallsScript.sol - -pragma solidity ^0.4.18; - -// Inspired by https://github.com/reverendus/tx-manager - - - - - -contract CallsScript is IEVMScriptExecutor { - using ScriptHelpers for bytes; - - uint256 constant internal SCRIPT_START_LOCATION = 4; - - event LogScriptCall(address indexed sender, address indexed src, address indexed dst); - - /** - * @notice Executes a number of call scripts - * @param _script [ specId (uint32) ] many calls with this structure -> - * [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ] - * @param _input Input is ignored in callscript - * @param _blacklist Addresses the script cannot call to, or will revert. - * @return always returns empty byte array - */ - function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) { - uint256 location = SCRIPT_START_LOCATION; // first 32 bits are spec id - while (location < _script.length) { - address contractAddress = _script.addressAt(location); - // Check address being called is not blacklist - for (uint i = 0; i < _blacklist.length; i++) { - require(contractAddress != _blacklist[i]); - } - - // logged before execution to ensure event ordering in receipt - // if failed entire execution is reverted regardless - LogScriptCall(msg.sender, address(this), contractAddress); - - uint256 calldataLength = uint256(_script.uint32At(location + 0x14)); - uint256 calldataStart = _script.locationOf(location + 0x14 + 0x04); - - assembly { - let success := call(sub(gas, 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0) - switch success case 0 { revert(0, 0) } - } - - location += (0x14 + 0x04 + calldataLength); - } - } -} - -///File: @aragon/os/contracts/evmscript/executors/DelegateScript.sol - -pragma solidity 0.4.18; - - - - - -interface DelegateScriptTarget { - function exec() public; -} - - -contract DelegateScript is IEVMScriptExecutor { - using ScriptHelpers for *; - - uint256 constant internal SCRIPT_START_LOCATION = 4; - - /** - * @notice Executes script by delegatecall into a contract - * @param _script [ specId (uint32) ][ contract address (20 bytes) ] - * @param _input ABI encoded call to be made to contract (if empty executes default exec() function) - * @param _blacklist If any address is passed, will revert. - * @return Call return data - */ - function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) { - require(_blacklist.length == 0); // dont have ability to control bans, so fail. - - // Script should be spec id + address (20 bytes) - require(_script.length == SCRIPT_START_LOCATION + 20); - return delegate(_script.addressAt(SCRIPT_START_LOCATION), _input); - } - - /** - * @dev Delegatecall to contract with input data - */ - function delegate(address _addr, bytes memory _input) internal returns (bytes memory output) { - require(isContract(_addr)); - require(_addr.delegatecall(_input.length > 0 ? _input : defaultInput())); - return returnedData(); - } - - function isContract(address _target) internal view returns (bool) { - uint256 size; - assembly { size := extcodesize(_target) } - return size > 0; - } - - function defaultInput() internal pure returns (bytes) { - return DelegateScriptTarget(0).exec.selector.toBytes(); - } - - /** - * @dev copies and returns last's call data - */ - function returnedData() internal view returns (bytes ret) { - assembly { - let size := returndatasize - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - mstore(ret, size) // set array length - returndatacopy(add(ret, 0x20), 0, size) // copy return data - } - return ret; - } -} - -///File: @aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol - -pragma solidity 0.4.18; - - - -// Inspired by: https://github.com/dapphub/ds-proxy/blob/master/src/proxy.sol - - -contract DeployDelegateScript is DelegateScript { - uint256 constant internal SCRIPT_START_LOCATION = 4; - - mapping (bytes32 => address) cache; - - /** - * @notice Executes script by delegatecall into a deployed contract (exec() function) - * @param _script [ specId (uint32) ][ contractInitcode (bytecode) ] - * @param _input ABI encoded call to be made to contract (if empty executes default exec() function) - * @param _blacklist If any address is passed, will revert. - * @return Call return data - */ - function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) { - require(_blacklist.length == 0); // dont have ability to control bans, so fail. - - bytes32 id = keccak256(_script); - address deployed = cache[id]; - if (deployed == address(0)) { - deployed = deploy(_script); - cache[id] = deployed; - } - - return DelegateScript.delegate(deployed, _input); - } - - /** - * @dev Deploys contract byte code to network - */ - function deploy(bytes _script) internal returns (address addr) { - assembly { - // 0x24 = 0x20 (length) + 0x04 (spec id uint32) - // Length of code is 4 bytes less than total script size - addr := create(0, add(_script, 0x24), sub(mload(_script), 0x04)) - switch iszero(extcodesize(addr)) - case 1 { revert(0, 0) } // throw if contract failed to deploy - } - } -} - -///File: @aragon/os/contracts/factory/EVMScriptRegistryFactory.sol - -pragma solidity 0.4.18; - - - - - - - - - - - - -contract EVMScriptRegistryFactory is AppProxyFactory, EVMScriptRegistryConstants { - address public baseReg; - address public baseCalls; - address public baseDel; - address public baseDeployDel; - - function EVMScriptRegistryFactory() public { - baseReg = address(new EVMScriptRegistry()); - baseCalls = address(new CallsScript()); - baseDel = address(new DelegateScript()); - baseDeployDel = address(new DeployDelegateScript()); - } - - function newEVMScriptRegistry(Kernel _dao, address _root) public returns (EVMScriptRegistry reg) { - reg = EVMScriptRegistry(_dao.newPinnedAppInstance(EVMSCRIPT_REGISTRY_APP_ID, baseReg)); - reg.initialize(); - - ACL acl = ACL(_dao.acl()); - - _dao.setApp(_dao.APP_ADDR_NAMESPACE(), EVMSCRIPT_REGISTRY_APP_ID, reg); - acl.createPermission(this, reg, reg.REGISTRY_MANAGER_ROLE(), this); - - reg.addScriptExecutor(baseCalls); // spec 1 = CallsScript - reg.addScriptExecutor(baseDel); // spec 2 = DelegateScript - reg.addScriptExecutor(baseDeployDel); // spec 3 = DeployDelegateScript - - acl.revokePermission(this, reg, reg.REGISTRY_MANAGER_ROLE()); - acl.setPermissionManager(_root, reg, reg.REGISTRY_MANAGER_ROLE()); - - return reg; - } -} - - -///File: @aragon/os/contracts/factory/DAOFactory.sol - -pragma solidity 0.4.18; - - - - - - - - - -contract DAOFactory { - address public baseKernel; - address public baseACL; - EVMScriptRegistryFactory public regFactory; - - event DeployDAO(address dao); - event DeployEVMScriptRegistry(address reg); - - function DAOFactory(address _regFactory) public { - // No need to init as it cannot be killed by devops199 - baseKernel = address(new Kernel()); - baseACL = address(new ACL()); - - if (_regFactory != address(0)) { - regFactory = EVMScriptRegistryFactory(_regFactory); - } - } - - /** - * @param _root Address that will be granted control to setup DAO permissions - */ - function newDAO(address _root) public returns (Kernel dao) { - dao = Kernel(new KernelProxy(baseKernel)); - - address initialRoot = address(regFactory) != address(0) ? this : _root; - dao.initialize(baseACL, initialRoot); - - ACL acl = ACL(dao.acl()); - - if (address(regFactory) != address(0)) { - bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); - bytes32 appManagerRole = dao.APP_MANAGER_ROLE(); - - acl.grantPermission(regFactory, acl, permRole); - - acl.createPermission(regFactory, dao, appManagerRole, this); - - EVMScriptRegistry reg = regFactory.newEVMScriptRegistry(dao, _root); - DeployEVMScriptRegistry(address(reg)); - - acl.revokePermission(regFactory, dao, appManagerRole); - acl.grantPermission(_root, acl, permRole); - - acl.setPermissionManager(address(0), dao, appManagerRole); - acl.setPermissionManager(_root, acl, permRole); - } - - DeployDAO(dao); - } -} - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LPVault.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: RJ Ewing, Griff Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/// @dev This contract holds ether securely for liquid pledging systems; for -/// this iteration the funds will come often be escaped to the Giveth Multisig -/// (safety precaution), but once fully tested and optimized this contract will -/// be a safe place to store funds equipped with optional variable time delays -/// to allow for an optional escapeHatch to be implemented in case of issues; -/// future versions of this contract will be enabled for tokens - - - - -/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract -/// to confirm and cancel payments in the `LiquidPledging` contract. -contract ILiquidPledging { - function confirmPayment(uint64 idPledge, uint amount) public; - function cancelPayment(uint64 idPledge, uint amount) public; -} - -/// @dev `LPVault` is a higher level contract built off of the `Escapable` -/// contract that holds funds for the liquid pledging system. -contract LPVault is EscapableApp, LiquidPledgingACLHelpers { - - bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); - bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); - bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); - - event AutoPaySet(bool autoPay); - event EscapeFundsCalled(address token, uint amount); - event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); - event CancelPayment(uint indexed idPayment, bytes32 indexed ref); - event AuthorizePayment( - uint indexed idPayment, - bytes32 indexed ref, - address indexed dest, - address token, - uint amount - ); - - enum PaymentStatus { - Pending, // When the payment is awaiting confirmation - Paid, // When the payment has been sent - Canceled // When the payment will never be sent - } - - /// @dev `Payment` is a public structure that describes the details of - /// each payment the `ref` param makes it easy to track the movements of - /// funds transparently by its connection to other `Payment` structs - struct Payment { - bytes32 ref; // an input that references details from other contracts - address dest; // recipient of the ETH - PaymentStatus state; // Pending, Paid or Canceled - address token; - uint amount; // amount of ETH (in wei) to be sent - } - - bool public autoPay; // If false, payments will take 2 txs to be completed - - // @dev An array that contains all the payments for this LPVault - Payment[] public payments; - ILiquidPledging public liquidPledging; - - /// @dev The attached `LiquidPledging` contract is the only address that can - /// call a function with this modifier - modifier onlyLiquidPledging() { - require(msg.sender == address(liquidPledging)); - _; - } - - function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _liquidPledging - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { - super.initialize(_escapeHatchDestination); - - require(_liquidPledging != 0x0); - liquidPledging = ILiquidPledging(_liquidPledging); - } - - /// @notice Used to decentralize, toggles whether the LPVault will - /// automatically confirm a payment after the payment has been authorized - /// @param _automatic If true, payments will confirm instantly, if false - /// the training wheels are put on and the owner must manually approve - /// every payment - function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) { - autoPay = _automatic; - AutoPaySet(autoPay); - } - - /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner` - /// must call `confirmPayment()` for a transfer to occur (training wheels); - /// either way, a new payment is added to `payments[]` - /// @param _ref References the payment will normally be the pledgeID - /// @param _dest The address that payments will be sent to - /// @param _amount The amount that the payment is being authorized for - /// @return idPayment The id of the payment (needed by the owner to confirm) - function authorizePayment( - bytes32 _ref, - address _dest, - address _token, - uint _amount - ) external onlyLiquidPledging returns (uint) - { - uint idPayment = payments.length; - payments.length ++; - payments[idPayment].state = PaymentStatus.Pending; - payments[idPayment].ref = _ref; - payments[idPayment].dest = _dest; - payments[idPayment].token = _token; - payments[idPayment].amount = _amount; - - AuthorizePayment(idPayment, _ref, _dest, _token, _amount); - - if (autoPay) { - _doConfirmPayment(idPayment); - } - - return idPayment; - } - - /// @notice Allows the owner to confirm payments; since - /// `authorizePayment` is the only way to populate the `payments[]` array - /// this is generally used when `autopay` is `false` after a payment has - /// has been authorized - /// @param _idPayment Array lookup for the payment. - function confirmPayment(uint _idPayment) public { - Payment storage p = payments[_idPayment]; - require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); - _doConfirmPayment(_idPayment); - } - - /// @notice When `autopay` is `false` and after a payment has been authorized - /// to allow the owner to cancel a payment instead of confirming it. - /// @param _idPayment Array lookup for the payment. - function cancelPayment(uint _idPayment) external { - _doCancelPayment(_idPayment); - } - - /// @notice `onlyOwner` An efficient way to confirm multiple payments - /// @param _idPayments An array of multiple payment ids - function multiConfirm(uint[] _idPayments) external { - for (uint i = 0; i < _idPayments.length; i++) { - confirmPayment(_idPayments[i]); - } - } - - /// @notice `onlyOwner` An efficient way to cancel multiple payments - /// @param _idPayments An array of multiple payment ids - function multiCancel(uint[] _idPayments) external { - for (uint i = 0; i < _idPayments.length; i++) { - _doCancelPayment(_idPayments[i]); - } - } - - /// Transfer tokens to the escapeHatchDestination. - /// Used as a safety mechanism to prevent the vault from holding too much value - /// before being thoroughly battle-tested. - /// @param _token to transfer - /// @param _amount to transfer - function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(_token != 0x0); - ERC20 token = ERC20(_token); - require(token.transfer(escapeHatchDestination, _amount)); - EscapeFundsCalled(_token, _amount); - } - - /// @return The total number of payments that have ever been authorized - function nPayments() external view returns (uint) { - return payments.length; - } - - /// @notice Transfers ETH according to the data held within the specified - /// payment id (internal function) - /// @param _idPayment id number for the payment about to be fulfilled - function _doConfirmPayment(uint _idPayment) internal { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Paid; - liquidPledging.confirmPayment(uint64(p.ref), p.amount); - - ERC20 token = ERC20(p.token); - require(token.transfer(p.dest, p.amount)); // Transfers token to dest - - ConfirmPayment(_idPayment, p.ref); - } - - /// @notice Cancels a pending payment (internal function) - /// @param _idPayment id number for the payment - function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Canceled; - - liquidPledging.cancelPayment(uint64(p.ref), p.amount); - - CancelPayment(_idPayment, p.ref); - } -} - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} - - -///File: ./contracts/LiquidPledging.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -/// @dev `LiquidPledging` allows for liquid pledging through the use of -/// internal id structures and delegate chaining. All basic operations for -/// handling liquid pledging are supplied as well as plugin features -/// to allow for expanded functionality. -contract LiquidPledging is LiquidPledgingBase { - - function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function addGiverAndDonate(uint64 idReceiver, address token, uint amount) - public - { - addGiverAndDonate(idReceiver, msg.sender, token, amount); - } - - function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) - public - { - require(donorAddress != 0); - // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver, token, amount); - } - - /// @notice This is how value enters the system and how pledges are created; - /// the ether is sent to the vault, an pledge for the Giver is created (or - /// found), the amount of ETH donated in wei is added to the `amount` in - /// the Giver's Pledge, and an LP transfer is done to the idReceiver for - /// the full amount - /// @param idGiver The id of the Giver donating - /// @param idReceiver The Admin receiving the donation; can be any Admin: - /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public - { - require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - require(amount > 0); - require(token != 0x0); - - PledgeAdmin storage sender = _findAdmin(idGiver); - require(sender.adminType == PledgeAdminType.Giver); - - // TODO should this be done at the end of this function? - // what re-entrancy issues are there if this is done here? - // if done at the end of the function, will that affect plugins? - require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` - - uint64 idPledge = _findOrCreatePledge( - idGiver, - new uint64[](0), // Creates empty array for delegationChain - 0, - 0, - 0, - token, - PledgeState.Pledged - ); - - Pledge storage pTo = _findPledge(idPledge); - pTo.amount += amount; - - Transfer(0, idPledge, amount); - - _transfer(idGiver, idPledge, amount, idReceiver); - } - - /// @notice Transfers amounts between pledges for internal accounting - /// @param idSender Id of the Admin that is transferring the amount from - /// Pledge to Pledge; this admin must have permissions to move the value - /// @param idPledge Id of the pledge that's moving the value - /// @param amount Quantity of ETH (in wei) that this pledge is transferring - /// the authority to withdraw from the vault - /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending - /// to a Giver, a Delegate or a Project; a Delegate sending to another - /// Delegate, or a Delegate pre-commiting it to a Project - function transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) public - { - _checkAdminOwner(idSender); - _transfer(idSender, idPledge, amount, idReceiver); - } - - /// @notice Authorizes a payment be made from the `vault` can be used by the - /// Giver to veto a pre-committed donation from a Delegate to an - /// intendedProject - /// @param idPledge Id of the pledge that is to be redeemed into ether - /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - - Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paying - ); - - _doTransfer(idPledge, idNewPledge, amount); - - PledgeAdmin storage owner = _findAdmin(p.owner); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); - } - - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState - /// from Paying to Paid - /// @param idPledge Id of the pledge that is to be withdrawn - /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paid - ); - - _doTransfer(idPledge, idNewPledge, amount); - } - - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState - /// from Paying back to Pledged - /// @param idPledge Id of the pledge that's withdraw is to be canceled - /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - // When a payment is canceled, never is assigned to a project. - uint64 idOldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - - idOldPledge = normalizePledge(idOldPledge); - - _doTransfer(idPledge, idOldPledge, amount); - } - - /// @notice Changes the `project.canceled` flag to `true`; cannot be undone - /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = _findAdmin(idProject); - _checkAdminOwner(idProject); - project.canceled = true; - - CancelProject(idProject); - } - - /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that - /// that sent it there in the first place, a Ctrl-z - /// @param idPledge Id of the pledge that is to be canceled - /// @param amount Quantity of ether (in wei) to be transfered to the - /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - require(p.oldPledge != 0); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); - _doTransfer(idPledge, oldPledge, amount); - } - - -//////// -// Multi pledge methods -//////// - - // @dev This set of functions makes moving a lot of pledges around much more - // efficient (saves gas) than calling these functions in series - - - /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods - uint constant D64 = 0x10000000000000000; - - /// @notice Transfers multiple amounts within multiple Pledges in an - /// efficient single call - /// @param idSender Id of the Admin that is transferring the amounts from - /// all the Pledges; this admin must have permissions to move the value - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or - /// Project sending to a Giver, a Delegate or a Project; a Delegate sending - /// to another Delegate, or a Delegate pre-commiting it to a Project - function mTransfer( - uint64 idSender, - uint[] pledgesAmounts, - uint64 idReceiver - ) public - { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - transfer(idSender, idPledge, amount, idReceiver); - } - } - - /// @notice Authorizes multiple amounts within multiple Pledges to be - /// withdrawn from the `vault` in an efficient single call - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - function mWithdraw(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - withdraw(idPledge, amount); - } - } - - /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - confirmPayment(idPledge, amount); - } - } - - /// @notice `mCancelPayment` allows for multiple pledges to be canceled - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - cancelPayment(idPledge, amount); - } - } - - /// @notice `mNormalizePledge` allows for multiple pledges to be - /// normalized efficiently - /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) public { - for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge(pledges[i]); - } - } -} - - -///File: ./contracts/LPConstants.sol - -pragma solidity ^0.4.18; - - - -contract LPConstants is KernelConstants { - bytes32 constant public VAULT_APP_ID = keccak256("vault"); - bytes32 constant public LP_APP_ID = keccak256("liquidPledging"); -} - -///File: ./contracts/LPFactory.sol - -pragma solidity ^0.4.18; - - - - - - -contract LPFactory is LPConstants, DAOFactory { - address public vaultBase; - address public lpBase; - - event DeployVault(address vault); - event DeployLiquidPledging(address liquidPledging); - - function LPFactory(address _vaultBase, address _lpBase) public DAOFactory(0) { - require(_vaultBase != 0); - require(_lpBase != 0); - vaultBase = _vaultBase; - lpBase = _lpBase; - } - - function newLP(address _root, address _escapeHatchDestination) external { - Kernel kernel = newDAO(this); - ACL acl = ACL(kernel.acl()); - - bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); - - acl.createPermission(this, address(kernel), appManagerRole, this); - - LPVault v = LPVault(kernel.newAppInstance(VAULT_APP_ID, vaultBase)); - LiquidPledging lp = LiquidPledging(kernel.newAppInstance(LP_APP_ID, lpBase)); - v.initialize(address(lp), _escapeHatchDestination); - lp.initialize(address(v), _escapeHatchDestination); - - // register the lp instance w/ the kernel - kernel.setApp(kernel.APP_ADDR_NAMESPACE(), LP_APP_ID, address(lp)); - - _setPermissions(_root, acl, kernel, v, lp); - } - - function _setPermissions(address _root, ACL acl, Kernel kernel, LPVault v, LiquidPledging lp) internal { - bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); - bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); - bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); - bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); - - acl.createPermission(_root, address(v), hatchCallerRole, _root); - acl.createPermission(_root, address(lp), hatchCallerRole, _root); - acl.createPermission(_root, address(lp), pluginManagerRole, _root); - // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways - - acl.grantPermission(_root, address(kernel), appManagerRole); - acl.grantPermission(_root, address(acl), permRole); - acl.revokePermission(this, address(kernel), appManagerRole); - acl.revokePermission(this, address(acl), permRole); - - acl.setPermissionManager(_root, address(kernel), appManagerRole); - acl.setPermissionManager(_root, address(acl), permRole); - - DeployVault(address(v)); - DeployLiquidPledging(address(lp)); - } -} - -///File: ./contracts/LPFactory.sol - -pragma solidity ^0.4.18; - - - - - - -contract LPFactory is LPConstants, DAOFactory { - address public vaultBase; - address public lpBase; - - event DeployVault(address vault); - event DeployLiquidPledging(address liquidPledging); - - function LPFactory(address _vaultBase, address _lpBase) public DAOFactory(0) { - require(_vaultBase != 0); - require(_lpBase != 0); - vaultBase = _vaultBase; - lpBase = _lpBase; - } - - function newLP(address _root, address _escapeHatchDestination) external { - Kernel kernel = newDAO(this); - ACL acl = ACL(kernel.acl()); - - bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); - - acl.createPermission(this, address(kernel), appManagerRole, this); - - LPVault v = LPVault(kernel.newAppInstance(VAULT_APP_ID, vaultBase)); - LiquidPledging lp = LiquidPledging(kernel.newAppInstance(LP_APP_ID, lpBase)); - v.initialize(address(lp), _escapeHatchDestination); - lp.initialize(address(v), _escapeHatchDestination); - - // register the lp instance w/ the kernel - kernel.setApp(kernel.APP_ADDR_NAMESPACE(), LP_APP_ID, address(lp)); - - _setPermissions(_root, acl, kernel, v, lp); - } - - function _setPermissions(address _root, ACL acl, Kernel kernel, LPVault v, LiquidPledging lp) internal { - bytes32 appManagerRole = kernel.APP_MANAGER_ROLE(); - bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE(); - bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE(); - bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE(); - - acl.createPermission(_root, address(v), hatchCallerRole, _root); - acl.createPermission(_root, address(lp), hatchCallerRole, _root); - acl.createPermission(_root, address(lp), pluginManagerRole, _root); - // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways - - acl.grantPermission(_root, address(kernel), appManagerRole); - acl.grantPermission(_root, address(acl), permRole); - acl.revokePermission(this, address(kernel), appManagerRole); - acl.revokePermission(this, address(acl), permRole); - - acl.setPermissionManager(_root, address(kernel), appManagerRole); - acl.setPermissionManager(_root, address(acl), permRole); - - DeployVault(address(v)); - DeployLiquidPledging(address(lp)); - } -} \ No newline at end of file diff --git a/build/LPVault.sol.js b/build/LPVault.sol.js deleted file mode 100644 index c39dcfa..0000000 --- a/build/LPVault.sol.js +++ /dev/null @@ -1,75 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingByteCode = "0x" -exports.ILiquidPledgingRuntimeByteCode = "0x" -exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LPVaultByteCode = "0x606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" -exports.LPVaultRuntimeByteCode = "0x6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" -exports['_./contracts/LPVault.sol_keccak256'] = "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda" -exports.ILiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingByteCode = "0x" -exports.ILiquidPledgingRuntimeByteCode = "0x" -exports.LPVaultAbi = [{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"escapeFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_liquidPledging","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CANCEL_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SET_AUTOPAY_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidPledging","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONFIRM_PAYMENT_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"payments","outputs":[{"name":"ref","type":"bytes32"},{"name":"dest","type":"address"},{"name":"state","type":"uint8"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_automatic","type":"bool"}],"name":"setAutopay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiCancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"autoPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_idPayments","type":"uint256[]"}],"name":"multiConfirm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"autoPay","type":"bool"}],"name":"AutoPaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeFundsCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"ConfirmPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"}],"name":"CancelPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idPayment","type":"uint256"},{"indexed":true,"name":"ref","type":"bytes32"},{"indexed":true,"name":"dest","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AuthorizePayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LPVaultByteCode = "0x606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" -exports.LPVaultRuntimeByteCode = "0x6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029" -exports['_./contracts/LPVault.sol_keccak256'] = "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LPVault_all.sol b/build/LPVault_all.sol deleted file mode 100644 index 6c6aff5..0000000 --- a/build/LPVault_all.sol +++ /dev/null @@ -1,1070 +0,0 @@ - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LPVault.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: RJ Ewing, Griff Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/// @dev This contract holds ether securely for liquid pledging systems; for -/// this iteration the funds will come often be escaped to the Giveth Multisig -/// (safety precaution), but once fully tested and optimized this contract will -/// be a safe place to store funds equipped with optional variable time delays -/// to allow for an optional escapeHatch to be implemented in case of issues; -/// future versions of this contract will be enabled for tokens - - - - -/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract -/// to confirm and cancel payments in the `LiquidPledging` contract. -contract ILiquidPledging { - function confirmPayment(uint64 idPledge, uint amount) public; - function cancelPayment(uint64 idPledge, uint amount) public; -} - -/// @dev `LPVault` is a higher level contract built off of the `Escapable` -/// contract that holds funds for the liquid pledging system. -contract LPVault is EscapableApp, LiquidPledgingACLHelpers { - - bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); - bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); - bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); - - event AutoPaySet(bool autoPay); - event EscapeFundsCalled(address token, uint amount); - event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); - event CancelPayment(uint indexed idPayment, bytes32 indexed ref); - event AuthorizePayment( - uint indexed idPayment, - bytes32 indexed ref, - address indexed dest, - address token, - uint amount - ); - - enum PaymentStatus { - Pending, // When the payment is awaiting confirmation - Paid, // When the payment has been sent - Canceled // When the payment will never be sent - } - - /// @dev `Payment` is a public structure that describes the details of - /// each payment the `ref` param makes it easy to track the movements of - /// funds transparently by its connection to other `Payment` structs - struct Payment { - bytes32 ref; // an input that references details from other contracts - address dest; // recipient of the ETH - PaymentStatus state; // Pending, Paid or Canceled - address token; - uint amount; // amount of ETH (in wei) to be sent - } - - bool public autoPay; // If false, payments will take 2 txs to be completed - - // @dev An array that contains all the payments for this LPVault - Payment[] public payments; - ILiquidPledging public liquidPledging; - - /// @dev The attached `LiquidPledging` contract is the only address that can - /// call a function with this modifier - modifier onlyLiquidPledging() { - require(msg.sender == address(liquidPledging)); - _; - } - - function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _liquidPledging - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { - super.initialize(_escapeHatchDestination); - - require(_liquidPledging != 0x0); - liquidPledging = ILiquidPledging(_liquidPledging); - } - - /// @notice Used to decentralize, toggles whether the LPVault will - /// automatically confirm a payment after the payment has been authorized - /// @param _automatic If true, payments will confirm instantly, if false - /// the training wheels are put on and the owner must manually approve - /// every payment - function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) { - autoPay = _automatic; - AutoPaySet(autoPay); - } - - /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner` - /// must call `confirmPayment()` for a transfer to occur (training wheels); - /// either way, a new payment is added to `payments[]` - /// @param _ref References the payment will normally be the pledgeID - /// @param _dest The address that payments will be sent to - /// @param _amount The amount that the payment is being authorized for - /// @return idPayment The id of the payment (needed by the owner to confirm) - function authorizePayment( - bytes32 _ref, - address _dest, - address _token, - uint _amount - ) external onlyLiquidPledging returns (uint) - { - uint idPayment = payments.length; - payments.length ++; - payments[idPayment].state = PaymentStatus.Pending; - payments[idPayment].ref = _ref; - payments[idPayment].dest = _dest; - payments[idPayment].token = _token; - payments[idPayment].amount = _amount; - - AuthorizePayment(idPayment, _ref, _dest, _token, _amount); - - if (autoPay) { - _doConfirmPayment(idPayment); - } - - return idPayment; - } - - /// @notice Allows the owner to confirm payments; since - /// `authorizePayment` is the only way to populate the `payments[]` array - /// this is generally used when `autopay` is `false` after a payment has - /// has been authorized - /// @param _idPayment Array lookup for the payment. - function confirmPayment(uint _idPayment) public { - Payment storage p = payments[_idPayment]; - require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); - _doConfirmPayment(_idPayment); - } - - /// @notice When `autopay` is `false` and after a payment has been authorized - /// to allow the owner to cancel a payment instead of confirming it. - /// @param _idPayment Array lookup for the payment. - function cancelPayment(uint _idPayment) external { - _doCancelPayment(_idPayment); - } - - /// @notice `onlyOwner` An efficient way to confirm multiple payments - /// @param _idPayments An array of multiple payment ids - function multiConfirm(uint[] _idPayments) external { - for (uint i = 0; i < _idPayments.length; i++) { - confirmPayment(_idPayments[i]); - } - } - - /// @notice `onlyOwner` An efficient way to cancel multiple payments - /// @param _idPayments An array of multiple payment ids - function multiCancel(uint[] _idPayments) external { - for (uint i = 0; i < _idPayments.length; i++) { - _doCancelPayment(_idPayments[i]); - } - } - - /// Transfer tokens to the escapeHatchDestination. - /// Used as a safety mechanism to prevent the vault from holding too much value - /// before being thoroughly battle-tested. - /// @param _token to transfer - /// @param _amount to transfer - function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(_token != 0x0); - ERC20 token = ERC20(_token); - require(token.transfer(escapeHatchDestination, _amount)); - EscapeFundsCalled(_token, _amount); - } - - /// @return The total number of payments that have ever been authorized - function nPayments() external view returns (uint) { - return payments.length; - } - - /// @notice Transfers ETH according to the data held within the specified - /// payment id (internal function) - /// @param _idPayment id number for the payment about to be fulfilled - function _doConfirmPayment(uint _idPayment) internal { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Paid; - liquidPledging.confirmPayment(uint64(p.ref), p.amount); - - ERC20 token = ERC20(p.token); - require(token.transfer(p.dest, p.amount)); // Transfers token to dest - - ConfirmPayment(_idPayment, p.ref); - } - - /// @notice Cancels a pending payment (internal function) - /// @param _idPayment id number for the payment - function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Canceled; - - liquidPledging.cancelPayment(uint64(p.ref), p.amount); - - CancelPayment(_idPayment, p.ref); - } -} - - -///File: ./contracts/LPVault.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: RJ Ewing, Griff Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/// @dev This contract holds ether securely for liquid pledging systems; for -/// this iteration the funds will come often be escaped to the Giveth Multisig -/// (safety precaution), but once fully tested and optimized this contract will -/// be a safe place to store funds equipped with optional variable time delays -/// to allow for an optional escapeHatch to be implemented in case of issues; -/// future versions of this contract will be enabled for tokens - - - - -/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract -/// to confirm and cancel payments in the `LiquidPledging` contract. -contract ILiquidPledging { - function confirmPayment(uint64 idPledge, uint amount) public; - function cancelPayment(uint64 idPledge, uint amount) public; -} - -/// @dev `LPVault` is a higher level contract built off of the `Escapable` -/// contract that holds funds for the liquid pledging system. -contract LPVault is EscapableApp, LiquidPledgingACLHelpers { - - bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256("CONFIRM_PAYMENT_ROLE"); - bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256("CANCEL_PAYMENT_ROLE"); - bytes32 constant public SET_AUTOPAY_ROLE = keccak256("SET_AUTOPAY_ROLE"); - - event AutoPaySet(bool autoPay); - event EscapeFundsCalled(address token, uint amount); - event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref); - event CancelPayment(uint indexed idPayment, bytes32 indexed ref); - event AuthorizePayment( - uint indexed idPayment, - bytes32 indexed ref, - address indexed dest, - address token, - uint amount - ); - - enum PaymentStatus { - Pending, // When the payment is awaiting confirmation - Paid, // When the payment has been sent - Canceled // When the payment will never be sent - } - - /// @dev `Payment` is a public structure that describes the details of - /// each payment the `ref` param makes it easy to track the movements of - /// funds transparently by its connection to other `Payment` structs - struct Payment { - bytes32 ref; // an input that references details from other contracts - address dest; // recipient of the ETH - PaymentStatus state; // Pending, Paid or Canceled - address token; - uint amount; // amount of ETH (in wei) to be sent - } - - bool public autoPay; // If false, payments will take 2 txs to be completed - - // @dev An array that contains all the payments for this LPVault - Payment[] public payments; - ILiquidPledging public liquidPledging; - - /// @dev The attached `LiquidPledging` contract is the only address that can - /// call a function with this modifier - modifier onlyLiquidPledging() { - require(msg.sender == address(liquidPledging)); - _; - } - - function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _liquidPledging - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external { - super.initialize(_escapeHatchDestination); - - require(_liquidPledging != 0x0); - liquidPledging = ILiquidPledging(_liquidPledging); - } - - /// @notice Used to decentralize, toggles whether the LPVault will - /// automatically confirm a payment after the payment has been authorized - /// @param _automatic If true, payments will confirm instantly, if false - /// the training wheels are put on and the owner must manually approve - /// every payment - function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) { - autoPay = _automatic; - AutoPaySet(autoPay); - } - - /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner` - /// must call `confirmPayment()` for a transfer to occur (training wheels); - /// either way, a new payment is added to `payments[]` - /// @param _ref References the payment will normally be the pledgeID - /// @param _dest The address that payments will be sent to - /// @param _amount The amount that the payment is being authorized for - /// @return idPayment The id of the payment (needed by the owner to confirm) - function authorizePayment( - bytes32 _ref, - address _dest, - address _token, - uint _amount - ) external onlyLiquidPledging returns (uint) - { - uint idPayment = payments.length; - payments.length ++; - payments[idPayment].state = PaymentStatus.Pending; - payments[idPayment].ref = _ref; - payments[idPayment].dest = _dest; - payments[idPayment].token = _token; - payments[idPayment].amount = _amount; - - AuthorizePayment(idPayment, _ref, _dest, _token, _amount); - - if (autoPay) { - _doConfirmPayment(idPayment); - } - - return idPayment; - } - - /// @notice Allows the owner to confirm payments; since - /// `authorizePayment` is the only way to populate the `payments[]` array - /// this is generally used when `autopay` is `false` after a payment has - /// has been authorized - /// @param _idPayment Array lookup for the payment. - function confirmPayment(uint _idPayment) public { - Payment storage p = payments[_idPayment]; - require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount))); - _doConfirmPayment(_idPayment); - } - - /// @notice When `autopay` is `false` and after a payment has been authorized - /// to allow the owner to cancel a payment instead of confirming it. - /// @param _idPayment Array lookup for the payment. - function cancelPayment(uint _idPayment) external { - _doCancelPayment(_idPayment); - } - - /// @notice `onlyOwner` An efficient way to confirm multiple payments - /// @param _idPayments An array of multiple payment ids - function multiConfirm(uint[] _idPayments) external { - for (uint i = 0; i < _idPayments.length; i++) { - confirmPayment(_idPayments[i]); - } - } - - /// @notice `onlyOwner` An efficient way to cancel multiple payments - /// @param _idPayments An array of multiple payment ids - function multiCancel(uint[] _idPayments) external { - for (uint i = 0; i < _idPayments.length; i++) { - _doCancelPayment(_idPayments[i]); - } - } - - /// Transfer tokens to the escapeHatchDestination. - /// Used as a safety mechanism to prevent the vault from holding too much value - /// before being thoroughly battle-tested. - /// @param _token to transfer - /// @param _amount to transfer - function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(_token != 0x0); - ERC20 token = ERC20(_token); - require(token.transfer(escapeHatchDestination, _amount)); - EscapeFundsCalled(_token, _amount); - } - - /// @return The total number of payments that have ever been authorized - function nPayments() external view returns (uint) { - return payments.length; - } - - /// @notice Transfers ETH according to the data held within the specified - /// payment id (internal function) - /// @param _idPayment id number for the payment about to be fulfilled - function _doConfirmPayment(uint _idPayment) internal { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Paid; - liquidPledging.confirmPayment(uint64(p.ref), p.amount); - - ERC20 token = ERC20(p.token); - require(token.transfer(p.dest, p.amount)); // Transfers token to dest - - ConfirmPayment(_idPayment, p.ref); - } - - /// @notice Cancels a pending payment (internal function) - /// @param _idPayment id number for the payment - function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) { - require(_idPayment < payments.length); - Payment storage p = payments[_idPayment]; - require(p.state == PaymentStatus.Pending); - - p.state = PaymentStatus.Canceled; - - liquidPledging.cancelPayment(uint64(p.ref), p.amount); - - CancelPayment(_idPayment, p.ref); - } -} diff --git a/build/LiquidPledging.sol.js b/build/LiquidPledging.sol.js deleted file mode 100644 index 89e7674..0000000 --- a/build/LiquidPledging.sol.js +++ /dev/null @@ -1,96 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingACLHelpers.sol.js b/build/LiquidPledgingACLHelpers.sol.js deleted file mode 100644 index da77561..0000000 --- a/build/LiquidPledgingACLHelpers.sol.js +++ /dev/null @@ -1,7 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingACLHelpers_all.sol b/build/LiquidPledgingACLHelpers_all.sol deleted file mode 100644 index 0a3de70..0000000 --- a/build/LiquidPledgingACLHelpers_all.sol +++ /dev/null @@ -1,25 +0,0 @@ - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} \ No newline at end of file diff --git a/build/LiquidPledgingBase.sol.js b/build/LiquidPledgingBase.sol.js deleted file mode 100644 index 2b82fc8..0000000 --- a/build/LiquidPledgingBase.sol.js +++ /dev/null @@ -1,92 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingBase_all.sol b/build/LiquidPledgingBase_all.sol deleted file mode 100644 index 8fa8343..0000000 --- a/build/LiquidPledgingBase_all.sol +++ /dev/null @@ -1,2767 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} diff --git a/build/LiquidPledgingMock.sol.js b/build/LiquidPledgingMock.sol.js deleted file mode 100644 index 089289e..0000000 --- a/build/LiquidPledgingMock.sol.js +++ /dev/null @@ -1,135 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports.KernelConstantsAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.KernelConstantsByteCode = "0x6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" -exports.KernelConstantsRuntimeByteCode = "0x6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029" -exports.KernelStorageAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.KernelStorageByteCode = "0x6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" -exports.KernelStorageRuntimeByteCode = "0x60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029" -exports['_@aragon/os/contracts/kernel/KernelStorage.sol_keccak256'] = "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e" -exports.IAppProxyAbi = [{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IAppProxyByteCode = "0x" -exports.IAppProxyRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/apps/IAppProxy.sol_keccak256'] = "0x4d5f398f887030d6d0b5045e0424b59d58abd718143289afcaf3e160d6c91736" -exports.DelegateProxyAbi = [] -exports.DelegateProxyByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" -exports.DelegateProxyRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029" -exports['_@aragon/os/contracts/common/DelegateProxy.sol_keccak256'] = "0x81bab220700a9a5def3ac54278ccec046be0b1c333dba9567f7175e358414d87" -exports.AppProxyBaseAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] -exports.AppProxyBaseByteCode = "0x" -exports.AppProxyBaseRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/apps/AppProxyBase.sol_keccak256'] = "0x907218cac02c5f7a10873eb30fb1ffaecdd93527a0ff7e2f0305590bf585d06b" -exports.AppProxyUpgradeableAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pinnedCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] -exports.AppProxyUpgradeableByteCode = "0x6060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" -exports.AppProxyUpgradeableRuntimeByteCode = "0x6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029" -exports['_@aragon/os/contracts/apps/AppProxyUpgradeable.sol_keccak256'] = "0x4613af6e313048b7de649d54630276fb18154dac5674f057109f0e0591f11cb2" -exports.AppProxyPinnedAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUpgradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}] -exports.AppProxyPinnedByteCode = "0x6060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" -exports.AppProxyPinnedRuntimeByteCode = "0x6060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029" -exports['_@aragon/os/contracts/apps/AppProxyPinned.sol_keccak256'] = "0xfe66e88413adc4d60ae53352046bd23ebd0aeb3120599d445df19caa8b095c26" -exports.AppProxyFactoryAbi = [{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"}] -exports.AppProxyFactoryByteCode = "0x6060604052341561000f57600080fd5b61134b8061001e6000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" -exports.AppProxyFactoryRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029" -exports['_@aragon/os/contracts/factory/AppProxyFactory.sol_keccak256'] = "0xa5314f57f93d8e633724bd9f94ad43f127c5b5466dcd0ef32fe0f78d5d431592" -exports.KernelAbi = [{"constant":true,"inputs":[],"name":"KERNEL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_ADDR_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KERNEL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"apps","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_baseAcl","type":"address"},{"name":"_permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CORE_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_appBase","type":"address"}],"name":"newPinnedAppInstance","outputs":[{"name":"appProxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_namespace","type":"bytes32"},{"name":"_name","type":"bytes32"},{"name":"_app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ACL_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APP_BASES_NAMESPACE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"name":"newAppProxy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_where","type":"address"},{"name":"_what","type":"bytes32"},{"name":"_how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"}],"name":"newAppProxyPinned","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proxy","type":"address"}],"name":"NewAppProxy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.KernelByteCode = "0x6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" -exports.KernelRuntimeByteCode = "0x606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029" -exports['_@aragon/os/contracts/kernel/Kernel.sol_keccak256'] = "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d" -exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005698833981016040528080519150819050806200004d8164010000000062004f676200005682021704565b505050620000d5565b6200006e64010000000062005178620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005192620000d182021704565b600355565b4390565b6155b380620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" -exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" -exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd" -exports.LiquidPledgingMockAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mock_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_t","type":"uint256"}],"name":"setMockedTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingMockByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005698833981016040528080519150819050806200004d8164010000000062004f676200005682021704565b505050620000d5565b6200006e64010000000062005178620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005192620000d182021704565b600355565b4390565b6155b380620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" -exports.LiquidPledgingMockRuntimeByteCode = "0x60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029" -exports['_./contracts/LiquidPledgingMock.sol_keccak256'] = "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingMock_all.sol b/build/LiquidPledgingMock_all.sol deleted file mode 100644 index 2dc8257..0000000 --- a/build/LiquidPledgingMock_all.sol +++ /dev/null @@ -1,2836 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} - - -///File: ./contracts/LiquidPledging.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -/// @dev `LiquidPledging` allows for liquid pledging through the use of -/// internal id structures and delegate chaining. All basic operations for -/// handling liquid pledging are supplied as well as plugin features -/// to allow for expanded functionality. -contract LiquidPledging is LiquidPledgingBase { - - function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function addGiverAndDonate(uint64 idReceiver, address token, uint amount) - public - { - addGiverAndDonate(idReceiver, msg.sender, token, amount); - } - - function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) - public - { - require(donorAddress != 0); - // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver, token, amount); - } - - /// @notice This is how value enters the system and how pledges are created; - /// the ether is sent to the vault, an pledge for the Giver is created (or - /// found), the amount of ETH donated in wei is added to the `amount` in - /// the Giver's Pledge, and an LP transfer is done to the idReceiver for - /// the full amount - /// @param idGiver The id of the Giver donating - /// @param idReceiver The Admin receiving the donation; can be any Admin: - /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public - { - require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - require(amount > 0); - require(token != 0x0); - - PledgeAdmin storage sender = _findAdmin(idGiver); - require(sender.adminType == PledgeAdminType.Giver); - - // TODO should this be done at the end of this function? - // what re-entrancy issues are there if this is done here? - // if done at the end of the function, will that affect plugins? - require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` - - uint64 idPledge = _findOrCreatePledge( - idGiver, - new uint64[](0), // Creates empty array for delegationChain - 0, - 0, - 0, - token, - PledgeState.Pledged - ); - - Pledge storage pTo = _findPledge(idPledge); - pTo.amount += amount; - - Transfer(0, idPledge, amount); - - _transfer(idGiver, idPledge, amount, idReceiver); - } - - /// @notice Transfers amounts between pledges for internal accounting - /// @param idSender Id of the Admin that is transferring the amount from - /// Pledge to Pledge; this admin must have permissions to move the value - /// @param idPledge Id of the pledge that's moving the value - /// @param amount Quantity of ETH (in wei) that this pledge is transferring - /// the authority to withdraw from the vault - /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending - /// to a Giver, a Delegate or a Project; a Delegate sending to another - /// Delegate, or a Delegate pre-commiting it to a Project - function transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) public - { - _checkAdminOwner(idSender); - _transfer(idSender, idPledge, amount, idReceiver); - } - - /// @notice Authorizes a payment be made from the `vault` can be used by the - /// Giver to veto a pre-committed donation from a Delegate to an - /// intendedProject - /// @param idPledge Id of the pledge that is to be redeemed into ether - /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - - Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paying - ); - - _doTransfer(idPledge, idNewPledge, amount); - - PledgeAdmin storage owner = _findAdmin(p.owner); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); - } - - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState - /// from Paying to Paid - /// @param idPledge Id of the pledge that is to be withdrawn - /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paid - ); - - _doTransfer(idPledge, idNewPledge, amount); - } - - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState - /// from Paying back to Pledged - /// @param idPledge Id of the pledge that's withdraw is to be canceled - /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - // When a payment is canceled, never is assigned to a project. - uint64 idOldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - - idOldPledge = normalizePledge(idOldPledge); - - _doTransfer(idPledge, idOldPledge, amount); - } - - /// @notice Changes the `project.canceled` flag to `true`; cannot be undone - /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = _findAdmin(idProject); - _checkAdminOwner(idProject); - project.canceled = true; - - CancelProject(idProject); - } - - /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that - /// that sent it there in the first place, a Ctrl-z - /// @param idPledge Id of the pledge that is to be canceled - /// @param amount Quantity of ether (in wei) to be transfered to the - /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - require(p.oldPledge != 0); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); - _doTransfer(idPledge, oldPledge, amount); - } - - -//////// -// Multi pledge methods -//////// - - // @dev This set of functions makes moving a lot of pledges around much more - // efficient (saves gas) than calling these functions in series - - - /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods - uint constant D64 = 0x10000000000000000; - - /// @notice Transfers multiple amounts within multiple Pledges in an - /// efficient single call - /// @param idSender Id of the Admin that is transferring the amounts from - /// all the Pledges; this admin must have permissions to move the value - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or - /// Project sending to a Giver, a Delegate or a Project; a Delegate sending - /// to another Delegate, or a Delegate pre-commiting it to a Project - function mTransfer( - uint64 idSender, - uint[] pledgesAmounts, - uint64 idReceiver - ) public - { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - transfer(idSender, idPledge, amount, idReceiver); - } - } - - /// @notice Authorizes multiple amounts within multiple Pledges to be - /// withdrawn from the `vault` in an efficient single call - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - function mWithdraw(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - withdraw(idPledge, amount); - } - } - - /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - confirmPayment(idPledge, amount); - } - } - - /// @notice `mCancelPayment` allows for multiple pledges to be canceled - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - cancelPayment(idPledge, amount); - } - } - - /// @notice `mNormalizePledge` allows for multiple pledges to be - /// normalized efficiently - /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) public { - for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge(pledges[i]); - } - } -} - - -///File: @aragon/os/contracts/kernel/KernelStorage.sol - -pragma solidity 0.4.18; - - -contract KernelConstants { - bytes32 constant public CORE_NAMESPACE = keccak256("core"); - bytes32 constant public APP_BASES_NAMESPACE = keccak256("base"); - bytes32 constant public APP_ADDR_NAMESPACE = keccak256("app"); - - bytes32 constant public KERNEL_APP_ID = keccak256("kernel.aragonpm.eth"); - bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID); - - bytes32 constant public ACL_APP_ID = keccak256("acl.aragonpm.eth"); - bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID); -} - - -contract KernelStorage is KernelConstants { - mapping (bytes32 => address) public apps; -} - - -///File: @aragon/os/contracts/apps/IAppProxy.sol - -pragma solidity 0.4.18; - -interface IAppProxy { - function isUpgradeable() public pure returns (bool); - function getCode() public view returns (address); -} - - -///File: @aragon/os/contracts/common/DelegateProxy.sol - -pragma solidity 0.4.18; - - -contract DelegateProxy { - /** - * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!) - * @param _dst Destination address to perform the delegatecall - * @param _calldata Calldata for the delegatecall - */ - function delegatedFwd(address _dst, bytes _calldata) internal { - require(isContract(_dst)); - assembly { - let result := delegatecall(sub(gas, 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0) - let size := returndatasize - - let ptr := mload(0x40) - returndatacopy(ptr, 0, size) - - // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. - // if the call returned error data, forward it - switch result case 0 { revert(ptr, size) } - default { return(ptr, size) } - } - } - - function isContract(address _target) internal view returns (bool) { - uint256 size; - assembly { size := extcodesize(_target) } - return size > 0; - } -} - - -///File: @aragon/os/contracts/apps/AppProxyBase.sol - -pragma solidity 0.4.18; - - - - - - - -contract AppProxyBase is IAppProxy, AppStorage, DelegateProxy, KernelConstants { - /** - * @dev Initialize AppProxy - * @param _kernel Reference to organization kernel for the app - * @param _appId Identifier for app - * @param _initializePayload Payload for call to be made after setup to initialize - */ - function AppProxyBase(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public { - kernel = _kernel; - appId = _appId; - - // Implicit check that kernel is actually a Kernel - // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to - // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on - // it. - address appCode = getAppBase(appId); - - // If initialize payload is provided, it will be executed - if (_initializePayload.length > 0) { - require(isContract(appCode)); - // Cannot make delegatecall as a delegateproxy.delegatedFwd as it - // returns ending execution context and halts contract deployment - require(appCode.delegatecall(_initializePayload)); - } - } - - function getAppBase(bytes32 _appId) internal view returns (address) { - return kernel.getApp(keccak256(APP_BASES_NAMESPACE, _appId)); - } - - function () payable public { - address target = getCode(); - require(target != 0); // if app code hasn't been set yet, don't call - delegatedFwd(target, msg.data); - } -} - -///File: @aragon/os/contracts/apps/AppProxyUpgradeable.sol - -pragma solidity 0.4.18; - - - - -contract AppProxyUpgradeable is AppProxyBase { - address public pinnedCode; - - /** - * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app) - * @param _kernel Reference to organization kernel for the app - * @param _appId Identifier for app - * @param _initializePayload Payload for call to be made after setup to initialize - */ - function AppProxyUpgradeable(IKernel _kernel, bytes32 _appId, bytes _initializePayload) - AppProxyBase(_kernel, _appId, _initializePayload) public - { - - } - - function getCode() public view returns (address) { - return getAppBase(appId); - } - - function isUpgradeable() public pure returns (bool) { - return true; - } -} - - -///File: @aragon/os/contracts/apps/AppProxyPinned.sol - -pragma solidity 0.4.18; - - - - -contract AppProxyPinned is AppProxyBase { - /** - * @dev Initialize AppProxyPinned (makes it an un-upgradeable Aragon app) - * @param _kernel Reference to organization kernel for the app - * @param _appId Identifier for app - * @param _initializePayload Payload for call to be made after setup to initialize - */ - function AppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) - AppProxyBase(_kernel, _appId, _initializePayload) public - { - pinnedCode = getAppBase(appId); - require(pinnedCode != address(0)); - } - - function getCode() public view returns (address) { - return pinnedCode; - } - - function isUpgradeable() public pure returns (bool) { - return false; - } - - function () payable public { - delegatedFwd(getCode(), msg.data); - } -} - -///File: @aragon/os/contracts/factory/AppProxyFactory.sol - -pragma solidity 0.4.18; - - - - - -contract AppProxyFactory { - event NewAppProxy(address proxy); - - function newAppProxy(IKernel _kernel, bytes32 _appId) public returns (AppProxyUpgradeable) { - return newAppProxy(_kernel, _appId, new bytes(0)); - } - - function newAppProxy(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyUpgradeable) { - AppProxyUpgradeable proxy = new AppProxyUpgradeable(_kernel, _appId, _initializePayload); - NewAppProxy(address(proxy)); - return proxy; - } - - function newAppProxyPinned(IKernel _kernel, bytes32 _appId) public returns (AppProxyPinned) { - return newAppProxyPinned(_kernel, _appId, new bytes(0)); - } - - function newAppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyPinned) { - AppProxyPinned proxy = new AppProxyPinned(_kernel, _appId, _initializePayload); - NewAppProxy(address(proxy)); - return proxy; - } -} - - -///File: @aragon/os/contracts/kernel/Kernel.sol - -pragma solidity 0.4.18; - - - - - - - - - -contract Kernel is IKernel, KernelStorage, Initializable, AppProxyFactory, ACLSyntaxSugar { - bytes32 constant public APP_MANAGER_ROLE = bytes32(1); - - /** - * @dev Initialize can only be called once. It saves the block number in which it was initialized. - * @notice Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions - * @param _baseAcl Address of base ACL app - * @param _permissionsCreator Entity that will be given permission over createPermission - */ - function initialize(address _baseAcl, address _permissionsCreator) onlyInit public { - initialized(); - - IACL acl = IACL(newAppProxy(this, ACL_APP_ID)); - - _setApp(APP_BASES_NAMESPACE, ACL_APP_ID, _baseAcl); - _setApp(APP_ADDR_NAMESPACE, ACL_APP_ID, acl); - - acl.initialize(_permissionsCreator); - } - - /** - * @dev Create a new instance of an app linked to this kernel and set its base - * implementation if it was not already set - * @param _name Name of the app - * @param _appBase Address of the app's base implementation - * @return AppProxy instance - */ - function newAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { - _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); - appProxy = newAppProxy(this, _name); - } - - /** - * @dev Create a new pinned instance of an app linked to this kernel and set - * its base implementation if it was not already set - * @param _name Name of the app - * @param _appBase Address of the app's base implementation - * @return AppProxy instance - */ - function newPinnedAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) { - _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase); - appProxy = newAppProxyPinned(this, _name); - } - - /** - * @dev Set the resolving address of an app instance or base implementation - * @param _namespace App namespace to use - * @param _name Name of the app - * @param _app Address of the app - * @return ID of app - */ - function setApp(bytes32 _namespace, bytes32 _name, address _app) auth(APP_MANAGER_ROLE, arr(_namespace, _name)) kernelIntegrity public returns (bytes32 id) { - return _setApp(_namespace, _name, _app); - } - - /** - * @dev Get the address of an app instance or base implementation - * @param _id App identifier - * @return Address of the app - */ - function getApp(bytes32 _id) public view returns (address) { - return apps[_id]; - } - - /** - * @dev Get the installed ACL app - * @return ACL app - */ - function acl() public view returns (IACL) { - return IACL(getApp(ACL_APP)); - } - - /** - * @dev Function called by apps to check ACL on kernel or to check permission status - * @param _who Sender of the original call - * @param _where Address of the app - * @param _what Identifier for a group of actions in app - * @param _how Extra data for ACL auth - * @return boolean indicating whether the ACL allows the role or not - */ - function hasPermission(address _who, address _where, bytes32 _what, bytes _how) public view returns (bool) { - return acl().hasPermission(_who, _where, _what, _how); - } - - function _setApp(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { - id = keccak256(_namespace, _name); - apps[id] = _app; - SetApp(_namespace, _name, id, _app); - } - - function _setAppIfNew(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) { - id = keccak256(_namespace, _name); - - if (_app != address(0)) { - address app = getApp(id); - if (app != address(0)) { - require(app == _app); - } else { - apps[id] = _app; - SetApp(_namespace, _name, id, _app); - } - } - } - - modifier auth(bytes32 _role, uint256[] memory params) { - bytes memory how; - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - // Params is invalid from this point fwd - require(hasPermission(msg.sender, address(this), _role, how)); - _; - } - - modifier kernelIntegrity { - _; // After execution check integrity - address kernel = getApp(KERNEL_APP); - uint256 size; - assembly { size := extcodesize(kernel) } - require(size > 0); - } -} - - -///File: ./contracts/LiquidPledgingMock.sol - -pragma solidity ^0.4.11; -/* - Copyright 2017, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -// hack so that solcpiler will generate a contracts.Kernel object - - -/// @dev `LiquidPledgingMock` allows for mocking up -/// a `LiquidPledging` contract with the added ability -/// to manipulate the block time for testing purposes. -contract LiquidPledgingMock is LiquidPledging { - - uint public mock_time; - - function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public { - } - - /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` - /// instance and sets the mocked time to the current blocktime. - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_vault, _escapeHatchDestination); - mock_time = now; - } - - /// @dev `getTime` is a basic getter function for - /// the mock_time parameter - function _getTime() internal view returns (uint) { - return mock_time; - } - - /// @dev `setMockedTime` is a basic setter function for - /// the mock_time parameter - /// @param _t This is the value to which the mocked time - /// will be set. - function setMockedTime(uint _t) public { - mock_time = _t; - } -} - - -///File: ./contracts/LiquidPledgingMock.sol - -pragma solidity ^0.4.11; -/* - Copyright 2017, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -// hack so that solcpiler will generate a contracts.Kernel object - - -/// @dev `LiquidPledgingMock` allows for mocking up -/// a `LiquidPledging` contract with the added ability -/// to manipulate the block time for testing purposes. -contract LiquidPledgingMock is LiquidPledging { - - uint public mock_time; - - function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public { - } - - /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging` - /// instance and sets the mocked time to the current blocktime. - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_vault, _escapeHatchDestination); - mock_time = now; - } - - /// @dev `getTime` is a basic getter function for - /// the mock_time parameter - function _getTime() internal view returns (uint) { - return mock_time; - } - - /// @dev `setMockedTime` is a basic setter function for - /// the mock_time parameter - /// @param _t This is the value to which the mocked time - /// will be set. - function setMockedTime(uint _t) public { - mock_time = _t; - } -} diff --git a/build/LiquidPledgingPlugins.sol.js b/build/LiquidPledgingPlugins.sol.js deleted file mode 100644 index 234b68f..0000000 --- a/build/LiquidPledgingPlugins.sol.js +++ /dev/null @@ -1,72 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingPlugins_all.sol b/build/LiquidPledgingPlugins_all.sol deleted file mode 100644 index 0a37046..0000000 --- a/build/LiquidPledgingPlugins_all.sol +++ /dev/null @@ -1,798 +0,0 @@ - - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} \ No newline at end of file diff --git a/build/LiquidPledgingStorage.sol.js b/build/LiquidPledgingStorage.sol.js deleted file mode 100644 index 49d4f6f..0000000 --- a/build/LiquidPledgingStorage.sol.js +++ /dev/null @@ -1,14 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/LiquidPledgingStorage_all.sol b/build/LiquidPledgingStorage_all.sol deleted file mode 100644 index e80e110..0000000 --- a/build/LiquidPledgingStorage_all.sol +++ /dev/null @@ -1,156 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} \ No newline at end of file diff --git a/build/LiquidPledging_all.sol b/build/LiquidPledging_all.sol deleted file mode 100644 index 31caf87..0000000 --- a/build/LiquidPledging_all.sol +++ /dev/null @@ -1,2667 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} - - -///File: ./contracts/LiquidPledging.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -/// @dev `LiquidPledging` allows for liquid pledging through the use of -/// internal id structures and delegate chaining. All basic operations for -/// handling liquid pledging are supplied as well as plugin features -/// to allow for expanded functionality. -contract LiquidPledging is LiquidPledgingBase { - - function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function addGiverAndDonate(uint64 idReceiver, address token, uint amount) - public - { - addGiverAndDonate(idReceiver, msg.sender, token, amount); - } - - function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) - public - { - require(donorAddress != 0); - // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver, token, amount); - } - - /// @notice This is how value enters the system and how pledges are created; - /// the ether is sent to the vault, an pledge for the Giver is created (or - /// found), the amount of ETH donated in wei is added to the `amount` in - /// the Giver's Pledge, and an LP transfer is done to the idReceiver for - /// the full amount - /// @param idGiver The id of the Giver donating - /// @param idReceiver The Admin receiving the donation; can be any Admin: - /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public - { - require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - require(amount > 0); - require(token != 0x0); - - PledgeAdmin storage sender = _findAdmin(idGiver); - require(sender.adminType == PledgeAdminType.Giver); - - // TODO should this be done at the end of this function? - // what re-entrancy issues are there if this is done here? - // if done at the end of the function, will that affect plugins? - require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` - - uint64 idPledge = _findOrCreatePledge( - idGiver, - new uint64[](0), // Creates empty array for delegationChain - 0, - 0, - 0, - token, - PledgeState.Pledged - ); - - Pledge storage pTo = _findPledge(idPledge); - pTo.amount += amount; - - Transfer(0, idPledge, amount); - - _transfer(idGiver, idPledge, amount, idReceiver); - } - - /// @notice Transfers amounts between pledges for internal accounting - /// @param idSender Id of the Admin that is transferring the amount from - /// Pledge to Pledge; this admin must have permissions to move the value - /// @param idPledge Id of the pledge that's moving the value - /// @param amount Quantity of ETH (in wei) that this pledge is transferring - /// the authority to withdraw from the vault - /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending - /// to a Giver, a Delegate or a Project; a Delegate sending to another - /// Delegate, or a Delegate pre-commiting it to a Project - function transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) public - { - _checkAdminOwner(idSender); - _transfer(idSender, idPledge, amount, idReceiver); - } - - /// @notice Authorizes a payment be made from the `vault` can be used by the - /// Giver to veto a pre-committed donation from a Delegate to an - /// intendedProject - /// @param idPledge Id of the pledge that is to be redeemed into ether - /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - - Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paying - ); - - _doTransfer(idPledge, idNewPledge, amount); - - PledgeAdmin storage owner = _findAdmin(p.owner); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); - } - - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState - /// from Paying to Paid - /// @param idPledge Id of the pledge that is to be withdrawn - /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paid - ); - - _doTransfer(idPledge, idNewPledge, amount); - } - - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState - /// from Paying back to Pledged - /// @param idPledge Id of the pledge that's withdraw is to be canceled - /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - // When a payment is canceled, never is assigned to a project. - uint64 idOldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - - idOldPledge = normalizePledge(idOldPledge); - - _doTransfer(idPledge, idOldPledge, amount); - } - - /// @notice Changes the `project.canceled` flag to `true`; cannot be undone - /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = _findAdmin(idProject); - _checkAdminOwner(idProject); - project.canceled = true; - - CancelProject(idProject); - } - - /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that - /// that sent it there in the first place, a Ctrl-z - /// @param idPledge Id of the pledge that is to be canceled - /// @param amount Quantity of ether (in wei) to be transfered to the - /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - require(p.oldPledge != 0); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); - _doTransfer(idPledge, oldPledge, amount); - } - - -//////// -// Multi pledge methods -//////// - - // @dev This set of functions makes moving a lot of pledges around much more - // efficient (saves gas) than calling these functions in series - - - /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods - uint constant D64 = 0x10000000000000000; - - /// @notice Transfers multiple amounts within multiple Pledges in an - /// efficient single call - /// @param idSender Id of the Admin that is transferring the amounts from - /// all the Pledges; this admin must have permissions to move the value - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or - /// Project sending to a Giver, a Delegate or a Project; a Delegate sending - /// to another Delegate, or a Delegate pre-commiting it to a Project - function mTransfer( - uint64 idSender, - uint[] pledgesAmounts, - uint64 idReceiver - ) public - { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - transfer(idSender, idPledge, amount, idReceiver); - } - } - - /// @notice Authorizes multiple amounts within multiple Pledges to be - /// withdrawn from the `vault` in an efficient single call - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - function mWithdraw(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - withdraw(idPledge, amount); - } - } - - /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - confirmPayment(idPledge, amount); - } - } - - /// @notice `mCancelPayment` allows for multiple pledges to be canceled - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - cancelPayment(idPledge, amount); - } - } - - /// @notice `mNormalizePledge` allows for multiple pledges to be - /// normalized efficiently - /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) public { - for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge(pledges[i]); - } - } -} - - -///File: ./contracts/LiquidPledging.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -/// @dev `LiquidPledging` allows for liquid pledging through the use of -/// internal id structures and delegate chaining. All basic operations for -/// handling liquid pledging are supplied as well as plugin features -/// to allow for expanded functionality. -contract LiquidPledging is LiquidPledgingBase { - - function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function addGiverAndDonate(uint64 idReceiver, address token, uint amount) - public - { - addGiverAndDonate(idReceiver, msg.sender, token, amount); - } - - function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) - public - { - require(donorAddress != 0); - // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver, token, amount); - } - - /// @notice This is how value enters the system and how pledges are created; - /// the ether is sent to the vault, an pledge for the Giver is created (or - /// found), the amount of ETH donated in wei is added to the `amount` in - /// the Giver's Pledge, and an LP transfer is done to the idReceiver for - /// the full amount - /// @param idGiver The id of the Giver donating - /// @param idReceiver The Admin receiving the donation; can be any Admin: - /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public - { - require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - require(amount > 0); - require(token != 0x0); - - PledgeAdmin storage sender = _findAdmin(idGiver); - require(sender.adminType == PledgeAdminType.Giver); - - // TODO should this be done at the end of this function? - // what re-entrancy issues are there if this is done here? - // if done at the end of the function, will that affect plugins? - require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` - - uint64 idPledge = _findOrCreatePledge( - idGiver, - new uint64[](0), // Creates empty array for delegationChain - 0, - 0, - 0, - token, - PledgeState.Pledged - ); - - Pledge storage pTo = _findPledge(idPledge); - pTo.amount += amount; - - Transfer(0, idPledge, amount); - - _transfer(idGiver, idPledge, amount, idReceiver); - } - - /// @notice Transfers amounts between pledges for internal accounting - /// @param idSender Id of the Admin that is transferring the amount from - /// Pledge to Pledge; this admin must have permissions to move the value - /// @param idPledge Id of the pledge that's moving the value - /// @param amount Quantity of ETH (in wei) that this pledge is transferring - /// the authority to withdraw from the vault - /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending - /// to a Giver, a Delegate or a Project; a Delegate sending to another - /// Delegate, or a Delegate pre-commiting it to a Project - function transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) public - { - _checkAdminOwner(idSender); - _transfer(idSender, idPledge, amount, idReceiver); - } - - /// @notice Authorizes a payment be made from the `vault` can be used by the - /// Giver to veto a pre-committed donation from a Delegate to an - /// intendedProject - /// @param idPledge Id of the pledge that is to be redeemed into ether - /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - - Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paying - ); - - _doTransfer(idPledge, idNewPledge, amount); - - PledgeAdmin storage owner = _findAdmin(p.owner); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); - } - - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState - /// from Paying to Paid - /// @param idPledge Id of the pledge that is to be withdrawn - /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paid - ); - - _doTransfer(idPledge, idNewPledge, amount); - } - - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState - /// from Paying back to Pledged - /// @param idPledge Id of the pledge that's withdraw is to be canceled - /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - // When a payment is canceled, never is assigned to a project. - uint64 idOldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - - idOldPledge = normalizePledge(idOldPledge); - - _doTransfer(idPledge, idOldPledge, amount); - } - - /// @notice Changes the `project.canceled` flag to `true`; cannot be undone - /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = _findAdmin(idProject); - _checkAdminOwner(idProject); - project.canceled = true; - - CancelProject(idProject); - } - - /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that - /// that sent it there in the first place, a Ctrl-z - /// @param idPledge Id of the pledge that is to be canceled - /// @param amount Quantity of ether (in wei) to be transfered to the - /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - require(p.oldPledge != 0); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); - _doTransfer(idPledge, oldPledge, amount); - } - - -//////// -// Multi pledge methods -//////// - - // @dev This set of functions makes moving a lot of pledges around much more - // efficient (saves gas) than calling these functions in series - - - /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods - uint constant D64 = 0x10000000000000000; - - /// @notice Transfers multiple amounts within multiple Pledges in an - /// efficient single call - /// @param idSender Id of the Admin that is transferring the amounts from - /// all the Pledges; this admin must have permissions to move the value - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or - /// Project sending to a Giver, a Delegate or a Project; a Delegate sending - /// to another Delegate, or a Delegate pre-commiting it to a Project - function mTransfer( - uint64 idSender, - uint[] pledgesAmounts, - uint64 idReceiver - ) public - { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - transfer(idSender, idPledge, amount, idReceiver); - } - } - - /// @notice Authorizes multiple amounts within multiple Pledges to be - /// withdrawn from the `vault` in an efficient single call - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - function mWithdraw(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - withdraw(idPledge, amount); - } - } - - /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - confirmPayment(idPledge, amount); - } - } - - /// @notice `mCancelPayment` allows for multiple pledges to be canceled - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - cancelPayment(idPledge, amount); - } - } - - /// @notice `mNormalizePledge` allows for multiple pledges to be - /// normalized efficiently - /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) public { - for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge(pledges[i]); - } - } -} diff --git a/build/PledgeAdmins.sol.js b/build/PledgeAdmins.sol.js deleted file mode 100644 index aed78cf..0000000 --- a/build/PledgeAdmins.sol.js +++ /dev/null @@ -1,76 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/PledgeAdmins_all.sol b/build/PledgeAdmins_all.sol deleted file mode 100644 index 9223a1b..0000000 --- a/build/PledgeAdmins_all.sol +++ /dev/null @@ -1,1435 +0,0 @@ - - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} \ No newline at end of file diff --git a/build/Pledges.sol.js b/build/Pledges.sol.js deleted file mode 100644 index e1687e3..0000000 --- a/build/Pledges.sol.js +++ /dev/null @@ -1,68 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/Pledges_all.sol b/build/Pledges_all.sol deleted file mode 100644 index f60c52a..0000000 --- a/build/Pledges_all.sol +++ /dev/null @@ -1,919 +0,0 @@ - - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} diff --git a/build/StandardToken.sol.js b/build/StandardToken.sol.js deleted file mode 100644 index cf0710e..0000000 --- a/build/StandardToken.sol.js +++ /dev/null @@ -1,7 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.StandardTokenAbi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.StandardTokenByteCode = "0x6060604052341561000f57600080fd5b60038054600160a060020a03191633600160a060020a031617905561063e806100396000396000f3006060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029" -exports.StandardTokenRuntimeByteCode = "0x6060604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663095ea7b3811461009d57806318160ddd146100d357806323b872dd146100f857806340c10f1914610120578063661884631461014457806370a0823114610166578063a9059cbb14610185578063d73dd623146101a7578063dd62ed3e146101c9575b600080fd5b34156100a857600080fd5b6100bf600160a060020a03600435166024356101ee565b604051901515815260200160405180910390f35b34156100de57600080fd5b6100e6610258565b60405190815260200160405180910390f35b341561010357600080fd5b6100bf600160a060020a036004358116906024351660443561025e565b341561012b57600080fd5b610142600160a060020a0360043516602435610358565b005b341561014f57600080fd5b6100bf600160a060020a03600435166024356103d1565b341561017157600080fd5b6100e6600160a060020a03600435166104b7565b341561019057600080fd5b6100bf600160a060020a03600435166024356104d2565b34156101b257600080fd5b6100bf600160a060020a036004351660243561057c565b34156101d457600080fd5b6100e6600160a060020a03600435811690602435166105e9565b600160a060020a0333811660008181526020818152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60025490565b6000600160a060020a038316151561027557600080fd5b600160a060020a03841660009081526001602052604090205482111561029a57600080fd5b600160a060020a0380851660009081526020818152604080832033909416835292905220548211156102cb57600080fd5b600160a060020a038481166000818152600160209081526040808320805488900390558785168084528184208054890190558484528383528184203390961684529490915290819020805486900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a0390811691161461037357600080fd5b6002805482019055600160a060020a0382166000818152600160205260408082208054850190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033381166000908152602081815260408083209386168352929052908120548083111561042a57600160a060020a03338116600090815260208181526040808320938816835292905290812055610453565b600160a060020a0333811660009081526020818152604080832093881683529290522083820390555b600160a060020a033381166000818152602081815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a03831615156104e957600080fd5b600160a060020a03331660009081526001602052604090205482111561050e57600080fd5b600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a03338116600081815260208181526040808320948716808452949091528082208054860190819055919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260208181526040808320939094168252919091522054905600a165627a7a72305820fa577b915d604e5de01c5990f46ef5965ecb67e138d98331dc9d7d065bfd00100029" -exports['_./contracts/test/StandardToken.sol_keccak256'] = "0x9a4ae5b291b2fdb616bf902bff927d7b1bd0c1f3bcd6f0745f8e0c13dbb0ae55" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/StandardToken_all.sol b/build/StandardToken_all.sol deleted file mode 100644 index ab0fb8c..0000000 --- a/build/StandardToken_all.sol +++ /dev/null @@ -1,155 +0,0 @@ - - -///File: ./contracts/test/StandardToken.sol - -pragma solidity ^0.4.18; - -/** - * WARNING: This token is for testing purposes only - * and has been modified from the original version: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC20/StandardToken.sol - * - * @title Standard ERC20 token - * - * @dev Implementation of the basic standard token. - * @dev https://github.com/ethereum/EIPs/issues/20 - * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol - */ -contract StandardToken { - - event Transfer(address indexed from, address indexed to, uint256 value); - event Approval(address indexed owner, address indexed spender, uint256 value); - - mapping (address => mapping (address => uint256)) internal allowed; - mapping(address => uint256) balances; - - uint256 totalSupply_; - address owner; - - function StandardToken() public { - owner = msg.sender; - } - - modifier onlyOwner() { - require(msg.sender == owner); - _; - } - - /** - * @dev total number of tokens in existence - */ - function totalSupply() public view returns (uint256) { - return totalSupply_; - } - - function mint(address _to, uint _value) public onlyOwner { - totalSupply_ += _value; - balances[_to] += _value; - Transfer(0, _to, _value); - } - - /** - * @dev transfer token for a specified address - * @param _to The address to transfer to. - * @param _value The amount to be transferred. - */ - function transfer(address _to, uint256 _value) public returns (bool) { - require(_to != address(0)); - require(_value <= balances[msg.sender]); - - // SafeMath.sub will throw if there is not enough balance. - balances[msg.sender] = balances[msg.sender] - _value; - balances[_to] = balances[_to] + _value; - Transfer(msg.sender, _to, _value); - return true; - } - - /** - * @dev Gets the balance of the specified address. - * @param _owner The address to query the the balance of. - * @return An uint256 representing the amount owned by the passed address. - */ - function balanceOf(address _owner) public view returns (uint256 balance) { - return balances[_owner]; - } - /** - * @dev Transfer tokens from one address to another - * @param _from address The address which you want to send tokens from - * @param _to address The address which you want to transfer to - * @param _value uint256 the amount of tokens to be transferred - */ - function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { - require(_to != address(0)); - require(_value <= balances[_from]); - require(_value <= allowed[_from][msg.sender]); - - balances[_from] = balances[_from] - _value; - balances[_to] = balances[_to] + _value; - allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value; - Transfer(_from, _to, _value); - return true; - } - - /** - * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. - * - * Beware that changing an allowance with this method brings the risk that someone may use both the old - * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this - * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * @param _spender The address which will spend the funds. - * @param _value The amount of tokens to be spent. - */ - function approve(address _spender, uint256 _value) public returns (bool) { - allowed[msg.sender][_spender] = _value; - Approval(msg.sender, _spender, _value); - return true; - } - - /** - * @dev Function to check the amount of tokens that an owner allowed to a spender. - * @param _owner address The address which owns the funds. - * @param _spender address The address which will spend the funds. - * @return A uint256 specifying the amount of tokens still available for the spender. - */ - function allowance(address _owner, address _spender) public view returns (uint256) { - return allowed[_owner][_spender]; - } - - /** - * @dev Increase the amount of tokens that an owner allowed to a spender. - * - * approve should be called when allowed[_spender] == 0. To increment - * allowed value is better to use this function to avoid 2 calls (and wait until - * the first transaction is mined) - * From MonolithDAO Token.sol - * @param _spender The address which will spend the funds. - * @param _addedValue The amount of tokens to increase the allowance by. - */ - function increaseApproval(address _spender, uint _addedValue) public returns (bool) { - allowed[msg.sender][_spender] = allowed[msg.sender][_spender] + _addedValue; - Approval(msg.sender, _spender, allowed[msg.sender][_spender]); - return true; - } - - /** - * @dev Decrease the amount of tokens that an owner allowed to a spender. - * - * approve should be called when allowed[_spender] == 0. To decrement - * allowed value is better to use this function to avoid 2 calls (and wait until - * the first transaction is mined) - * From MonolithDAO Token.sol - * @param _spender The address which will spend the funds. - * @param _subtractedValue The amount of tokens to decrease the allowance by. - */ - function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { - uint oldValue = allowed[msg.sender][_spender]; - if (_subtractedValue > oldValue) { - allowed[msg.sender][_spender] = 0; - } else { - allowed[msg.sender][_spender] = oldValue - _subtractedValue; - } - Approval(msg.sender, _spender, allowed[msg.sender][_spender]); - return true; - } - -} \ No newline at end of file diff --git a/build/TestSimpleDelegatePlugin.sol.js b/build/TestSimpleDelegatePlugin.sol.js deleted file mode 100644 index 333a574..0000000 --- a/build/TestSimpleDelegatePlugin.sol.js +++ /dev/null @@ -1,106 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports.TestSimpleDelegatePluginAbi = [{"constant":true,"inputs":[],"name":"idDelegate","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_liquidPledging","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" -exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" -exports.TestSimpleDelegatePluginFactoryAbi = [{"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] -exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b000296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" -exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b00029" -exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xbf3f85c43cc59d922946a49ba872a8b634210f2d2169111001429e31dab2638a" -exports.TestSimpleDelegatePluginAbi = [{"constant":true,"inputs":[],"name":"idDelegate","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_liquidPledging","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleDelegatePluginByteCode = "0x6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" -exports.TestSimpleDelegatePluginRuntimeByteCode = "0x6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" -exports.TestSimpleDelegatePluginFactoryAbi = [{"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] -exports.TestSimpleDelegatePluginFactoryByteCode = "0x6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b000296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029" -exports.TestSimpleDelegatePluginFactoryRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b00029" -exports['_./contracts/test/TestSimpleDelegatePlugin.sol_keccak256'] = "0xbf3f85c43cc59d922946a49ba872a8b634210f2d2169111001429e31dab2638a" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleDelegatePlugin_all.sol b/build/TestSimpleDelegatePlugin_all.sol deleted file mode 100644 index 165ee89..0000000 --- a/build/TestSimpleDelegatePlugin_all.sol +++ /dev/null @@ -1,2510 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} - - -///File: ./contracts/LiquidPledging.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -/// @dev `LiquidPledging` allows for liquid pledging through the use of -/// internal id structures and delegate chaining. All basic operations for -/// handling liquid pledging are supplied as well as plugin features -/// to allow for expanded functionality. -contract LiquidPledging is LiquidPledgingBase { - - function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function addGiverAndDonate(uint64 idReceiver, address token, uint amount) - public - { - addGiverAndDonate(idReceiver, msg.sender, token, amount); - } - - function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) - public - { - require(donorAddress != 0); - // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver, token, amount); - } - - /// @notice This is how value enters the system and how pledges are created; - /// the ether is sent to the vault, an pledge for the Giver is created (or - /// found), the amount of ETH donated in wei is added to the `amount` in - /// the Giver's Pledge, and an LP transfer is done to the idReceiver for - /// the full amount - /// @param idGiver The id of the Giver donating - /// @param idReceiver The Admin receiving the donation; can be any Admin: - /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public - { - require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - require(amount > 0); - require(token != 0x0); - - PledgeAdmin storage sender = _findAdmin(idGiver); - require(sender.adminType == PledgeAdminType.Giver); - - // TODO should this be done at the end of this function? - // what re-entrancy issues are there if this is done here? - // if done at the end of the function, will that affect plugins? - require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` - - uint64 idPledge = _findOrCreatePledge( - idGiver, - new uint64[](0), // Creates empty array for delegationChain - 0, - 0, - 0, - token, - PledgeState.Pledged - ); - - Pledge storage pTo = _findPledge(idPledge); - pTo.amount += amount; - - Transfer(0, idPledge, amount); - - _transfer(idGiver, idPledge, amount, idReceiver); - } - - /// @notice Transfers amounts between pledges for internal accounting - /// @param idSender Id of the Admin that is transferring the amount from - /// Pledge to Pledge; this admin must have permissions to move the value - /// @param idPledge Id of the pledge that's moving the value - /// @param amount Quantity of ETH (in wei) that this pledge is transferring - /// the authority to withdraw from the vault - /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending - /// to a Giver, a Delegate or a Project; a Delegate sending to another - /// Delegate, or a Delegate pre-commiting it to a Project - function transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) public - { - _checkAdminOwner(idSender); - _transfer(idSender, idPledge, amount, idReceiver); - } - - /// @notice Authorizes a payment be made from the `vault` can be used by the - /// Giver to veto a pre-committed donation from a Delegate to an - /// intendedProject - /// @param idPledge Id of the pledge that is to be redeemed into ether - /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - - Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paying - ); - - _doTransfer(idPledge, idNewPledge, amount); - - PledgeAdmin storage owner = _findAdmin(p.owner); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); - } - - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState - /// from Paying to Paid - /// @param idPledge Id of the pledge that is to be withdrawn - /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paid - ); - - _doTransfer(idPledge, idNewPledge, amount); - } - - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState - /// from Paying back to Pledged - /// @param idPledge Id of the pledge that's withdraw is to be canceled - /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - // When a payment is canceled, never is assigned to a project. - uint64 idOldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - - idOldPledge = normalizePledge(idOldPledge); - - _doTransfer(idPledge, idOldPledge, amount); - } - - /// @notice Changes the `project.canceled` flag to `true`; cannot be undone - /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = _findAdmin(idProject); - _checkAdminOwner(idProject); - project.canceled = true; - - CancelProject(idProject); - } - - /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that - /// that sent it there in the first place, a Ctrl-z - /// @param idPledge Id of the pledge that is to be canceled - /// @param amount Quantity of ether (in wei) to be transfered to the - /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - require(p.oldPledge != 0); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); - _doTransfer(idPledge, oldPledge, amount); - } - - -//////// -// Multi pledge methods -//////// - - // @dev This set of functions makes moving a lot of pledges around much more - // efficient (saves gas) than calling these functions in series - - - /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods - uint constant D64 = 0x10000000000000000; - - /// @notice Transfers multiple amounts within multiple Pledges in an - /// efficient single call - /// @param idSender Id of the Admin that is transferring the amounts from - /// all the Pledges; this admin must have permissions to move the value - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or - /// Project sending to a Giver, a Delegate or a Project; a Delegate sending - /// to another Delegate, or a Delegate pre-commiting it to a Project - function mTransfer( - uint64 idSender, - uint[] pledgesAmounts, - uint64 idReceiver - ) public - { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - transfer(idSender, idPledge, amount, idReceiver); - } - } - - /// @notice Authorizes multiple amounts within multiple Pledges to be - /// withdrawn from the `vault` in an efficient single call - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - function mWithdraw(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - withdraw(idPledge, amount); - } - } - - /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - confirmPayment(idPledge, amount); - } - } - - /// @notice `mCancelPayment` allows for multiple pledges to be canceled - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - cancelPayment(idPledge, amount); - } - } - - /// @notice `mNormalizePledge` allows for multiple pledges to be - /// normalized efficiently - /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) public { - for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge(pledges[i]); - } - } -} - - -///File: ./contracts/test/TestSimpleDelegatePlugin.sol - -pragma solidity ^0.4.11; - - - -// simple liquidPledging plugin contract for testing whitelist -contract TestSimpleDelegatePlugin { - - uint64 public idDelegate; - LiquidPledging liquidPledging; - bool initPending; - - event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - - function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) public { - require(msg.sender != tx.origin); // Avoids being created directly by mistake. - liquidPledging = _liquidPledging; - initPending = true; - } - - function init( - string name, - string url, - uint64 commitTime - ) public { - require(initPending); - idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); - initPending = false; - } - - function beforeTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external returns (uint maxAllowed) { - require(!initPending); - BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - - function afterTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external { - require(!initPending); - AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - -} - -contract TestSimpleDelegatePluginFactory { - - function TestSimpleDelegatePluginFactory( - LiquidPledging liquidPledging, - string name, - string url, - uint64 commitTime - ) public { - TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); - d.init(name, url, commitTime); - } - -} - - -///File: ./contracts/test/TestSimpleDelegatePlugin.sol - -pragma solidity ^0.4.11; - - - -// simple liquidPledging plugin contract for testing whitelist -contract TestSimpleDelegatePlugin { - - uint64 public idDelegate; - LiquidPledging liquidPledging; - bool initPending; - - event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - - function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) public { - require(msg.sender != tx.origin); // Avoids being created directly by mistake. - liquidPledging = _liquidPledging; - initPending = true; - } - - function init( - string name, - string url, - uint64 commitTime - ) public { - require(initPending); - idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this)); - initPending = false; - } - - function beforeTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external returns (uint maxAllowed) { - require(!initPending); - BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - - function afterTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external { - require(!initPending); - AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - -} - -contract TestSimpleDelegatePluginFactory { - - function TestSimpleDelegatePluginFactory( - LiquidPledging liquidPledging, - string name, - string url, - uint64 commitTime - ) public { - TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging); - d.init(name, url, commitTime); - } - -} diff --git a/build/TestSimpleProjectPlugin.sol.js b/build/TestSimpleProjectPlugin.sol.js deleted file mode 100644 index 5a2dcd1..0000000 --- a/build/TestSimpleProjectPlugin.sol.js +++ /dev/null @@ -1,100 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" -exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" -exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" -exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory.sol.js b/build/TestSimpleProjectPluginFactory.sol.js deleted file mode 100644 index 770fb36..0000000 --- a/build/TestSimpleProjectPluginFactory.sol.js +++ /dev/null @@ -1,104 +0,0 @@ -/* This is an autogenerated file. DO NOT EDIT MANUALLY */ - -exports.ILiquidPledgingPluginAbi = [{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeManager","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILiquidPledgingPluginByteCode = "0x" -exports.ILiquidPledgingPluginRuntimeByteCode = "0x" -exports['_./contracts/ILiquidPledgingPlugin.sol_keccak256'] = "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b" -exports.ILPVaultAbi = [{"constant":false,"inputs":[{"name":"_ref","type":"bytes32"},{"name":"_dest","type":"address"},{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"authorizePayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.ILPVaultByteCode = "0x" -exports.ILPVaultRuntimeByteCode = "0x" -exports.LiquidPledgingStorageAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingStorageByteCode = "0x60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports.LiquidPledgingStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029" -exports['_./contracts/LiquidPledgingStorage.sol_keccak256'] = "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08" -exports.IACLAbi = [{"constant":false,"inputs":[{"name":"permissionsCreator","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.IACLByteCode = "0x" -exports.IACLRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/acl/IACL.sol_keccak256'] = "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede" -exports.IKernelAbi = [{"constant":true,"inputs":[{"name":"id","type":"bytes32"}],"name":"getApp","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"namespace","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"app","type":"address"}],"name":"setApp","outputs":[{"name":"id","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"acl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"},{"name":"where","type":"address"},{"name":"what","type":"bytes32"},{"name":"how","type":"bytes"}],"name":"hasPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"namespace","type":"bytes32"},{"indexed":true,"name":"name","type":"bytes32"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"app","type":"address"}],"name":"SetApp","type":"event"}] -exports.IKernelByteCode = "0x" -exports.IKernelRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/kernel/IKernel.sol_keccak256'] = "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881" -exports.AppStorageAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AppStorageByteCode = "0x6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports.AppStorageRuntimeByteCode = "0x60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029" -exports['_@aragon/os/contracts/apps/AppStorage.sol_keccak256'] = "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25" -exports.InitializableAbi = [{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.InitializableByteCode = "0x6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports.InitializableRuntimeByteCode = "0x60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029" -exports['_@aragon/os/contracts/common/Initializable.sol_keccak256'] = "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9" -exports.IEVMScriptExecutorAbi = [{"constant":false,"inputs":[{"name":"script","type":"bytes"},{"name":"input","type":"bytes"},{"name":"blacklist","type":"address[]"}],"name":"execScript","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptExecutorByteCode = "0x" -exports.IEVMScriptExecutorRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol_keccak256'] = "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012" -exports.EVMScriptRegistryConstantsAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRegistryConstantsByteCode = "0x6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.EVMScriptRegistryConstantsRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029" -exports.IEVMScriptRegistryAbi = [{"constant":true,"inputs":[{"name":"script","type":"bytes"}],"name":"getScriptExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"executorId","type":"uint256"}],"name":"disableScriptExecutor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"executor","type":"address"}],"name":"addScriptExecutor","outputs":[{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.IEVMScriptRegistryByteCode = "0x" -exports.IEVMScriptRegistryRuntimeByteCode = "0x" -exports['_@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol_keccak256'] = "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1" -exports.ScriptHelpersAbi = [{"constant":true,"inputs":[{"name":"_dest","type":"uint256"},{"name":"_src","type":"uint256"},{"name":"_len","type":"uint256"}],"name":"memcpy","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"bytes"},{"name":"_b","type":"bytes"},{"name":"_c","type":"address[]"}],"name":"abiEncode","outputs":[{"name":"d","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"}] -exports.ScriptHelpersByteCode = "0x6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports.ScriptHelpersRuntimeByteCode = "0x60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029" -exports['_@aragon/os/contracts/evmscript/ScriptHelpers.sol_keccak256'] = "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517" -exports.EVMScriptRunnerAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.EVMScriptRunnerByteCode = "0x6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports.EVMScriptRunnerRuntimeByteCode = "0x6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029" -exports['_@aragon/os/contracts/evmscript/EVMScriptRunner.sol_keccak256'] = "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e" -exports.ACLHelpersAbi = [] -exports.ACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029" -exports.ACLSyntaxSugarAbi = [] -exports.ACLSyntaxSugarByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports.ACLSyntaxSugarRuntimeByteCode = "0x6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029" -exports['_@aragon/os/contracts/acl/ACLSyntaxSugar.sol_keccak256'] = "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b" -exports.AragonAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.AragonAppByteCode = "0x6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports.AragonAppRuntimeByteCode = "0x6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029" -exports['_@aragon/os/contracts/apps/AragonApp.sol_keccak256'] = "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1" -exports.LiquidPledgingACLHelpersAbi = [] -exports.LiquidPledgingACLHelpersByteCode = "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports.LiquidPledgingACLHelpersRuntimeByteCode = "0x6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029" -exports['_./contracts/LiquidPledgingACLHelpers.sol_keccak256'] = "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62" -exports.LiquidPledgingPluginsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.LiquidPledgingPluginsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports.LiquidPledgingPluginsRuntimeByteCode = "0x6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029" -exports['_./contracts/LiquidPledgingPlugins.sol_keccak256'] = "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776" -exports.PledgeAdminsAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"}] -exports.PledgeAdminsByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports.PledgeAdminsRuntimeByteCode = "0x6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029" -exports['_./contracts/PledgeAdmins.sol_keccak256'] = "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104" -exports.PledgesAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] -exports.PledgesByteCode = "0x60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports.PledgesRuntimeByteCode = "0x6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029" -exports['_./contracts/Pledges.sol_keccak256'] = "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797" -exports.ERC20Abi = [{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] -exports.ERC20ByteCode = "0x" -exports.ERC20RuntimeByteCode = "0x" -exports['_giveth-common-contracts/contracts/ERC20.sol_keccak256'] = "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512" -exports.EscapableAppAbi = [{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.EscapableAppByteCode = "0x6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports.EscapableAppRuntimeByteCode = "0x6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029" -exports['_./contracts/EscapableApp.sol_keccak256'] = "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a" -exports.LiquidPledgingBaseAbi = [{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingBaseByteCode = "0x" -exports.LiquidPledgingBaseRuntimeByteCode = "0x" -exports['_./contracts/LiquidPledgingBase.sol_keccak256'] = "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5" -exports.LiquidPledgingAbi = [{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"donorAddress","type":"address"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistDisabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"projectId","type":"uint64"}],"name":"isProjectCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PLUGIN_MANAGER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledges","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"confirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"idxDelegate","type":"uint64"}],"name":"getPledgeDelegate","outputs":[{"name":"idDelegate","type":"uint64"},{"name":"addr","type":"address"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHashes","type":"bytes32[]"}],"name":"addValidPluginContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"useWhitelist","type":"bool"}],"name":"useWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"getPledge","outputs":[{"name":"amount","type":"uint256"},{"name":"owner","type":"uint64"},{"name":"nDelegates","type":"uint64"},{"name":"intendedProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"oldPledge","type":"uint64"},{"name":"token","type":"address"},{"name":"pledgeState","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"},{"name":"idReceiver","type":"uint64"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_vault","type":"address"},{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"donate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidPlugin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"}],"name":"normalizePledge","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addDelegate","outputs":[{"name":"idDelegate","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPledgeAdmins","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP_ID","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idReceiver","type":"uint64"},{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"addGiverAndDonate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"projectAdmin","type":"address"},{"name":"parentProject","type":"uint64"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addProject","outputs":[{"name":"idProject","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"}],"name":"cancelProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addValidPluginInstance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"plugin","type":"address"}],"name":"addGiver","outputs":[{"name":"idGiver","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getCodeHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"isTokenEscapable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getInitializationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mConfirmPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EVMSCRIPT_REGISTRY_APP","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"escapeHatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_role","type":"bytes32"},{"name":"params","type":"uint256[]"}],"name":"canPerform","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ESCAPE_HATCH_CALLER_ROLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"removeValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractHash","type":"bytes32"}],"name":"addValidPluginContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idDelegate","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledges","type":"uint64[]"}],"name":"mNormalizePledge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idSender","type":"uint64"},{"name":"pledgesAmounts","type":"uint256[]"},{"name":"idReceiver","type":"uint64"}],"name":"mTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idGiver","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateGiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"idPledge","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"idAdmin","type":"uint64"}],"name":"getPledgeAdmin","outputs":[{"name":"adminType","type":"uint8"},{"name":"addr","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"commitTime","type":"uint64"},{"name":"parentProject","type":"uint64"},{"name":"canceled","type":"bool"},{"name":"plugin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgesAmounts","type":"uint256[]"}],"name":"mCancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"escapeHatchDestination","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idProject","type":"uint64"},{"name":"newAddr","type":"address"},{"name":"newName","type":"string"},{"name":"newUrl","type":"string"},{"name":"newCommitTime","type":"uint64"}],"name":"updateProject","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_script","type":"bytes"}],"name":"getExecutor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_escapeHatchDestination","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"uint256"},{"indexed":true,"name":"to","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint256"}],"name":"CancelProject","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idGiver","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"GiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idDelegate","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"DelegateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"idProject","type":"uint64"},{"indexed":false,"name":"url","type":"string"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"EscapeHatchBlackistedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeHatchCalled","type":"event"}] -exports.LiquidPledgingByteCode = "0x6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports.LiquidPledgingRuntimeByteCode = "0x6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029" -exports['_./contracts/LiquidPledging.sol_keccak256'] = "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d" -exports.TestSimpleProjectPluginAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"idProject","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"afterTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"pledgeAdmin","type":"uint64"},{"name":"pledgeFrom","type":"uint64"},{"name":"pledgeTo","type":"uint64"},{"name":"context","type":"uint64"},{"name":"amount","type":"uint256"}],"name":"beforeTransfer","outputs":[{"name":"maxAllowed","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BeforeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pledgeAdmin","type":"uint64"},{"indexed":false,"name":"pledgeFrom","type":"uint64"},{"indexed":false,"name":"pledgeTo","type":"uint64"},{"indexed":false,"name":"context","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AfterTransfer","type":"event"}] -exports.TestSimpleProjectPluginByteCode = "0x6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" -exports.TestSimpleProjectPluginRuntimeByteCode = "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029" -exports['_./contracts/test/TestSimpleProjectPlugin.sol_keccak256'] = "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159" -exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" -exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" -exports['_./contracts/test/TestSimpleProjectPluginFactory.sol_keccak256'] = "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08" -exports.TestSimpleProjectPluginFactoryAbi = [{"constant":false,"inputs":[{"name":"liquidPledging","type":"address"},{"name":"name","type":"string"},{"name":"url","type":"string"},{"name":"parentProject","type":"uint64"}],"name":"deploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] -exports.TestSimpleProjectPluginFactoryByteCode = "0x6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" -exports.TestSimpleProjectPluginFactoryRuntimeByteCode = "0x6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029" -exports['_./contracts/test/TestSimpleProjectPluginFactory.sol_keccak256'] = "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08" -exports._solcVersion = "0.4.18+commit.9cf6e910.Darwin.appleclang" diff --git a/build/TestSimpleProjectPluginFactory_all.sol b/build/TestSimpleProjectPluginFactory_all.sol deleted file mode 100644 index 3533ed1..0000000 --- a/build/TestSimpleProjectPluginFactory_all.sol +++ /dev/null @@ -1,2470 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} - - -///File: ./contracts/LiquidPledging.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -/// @dev `LiquidPledging` allows for liquid pledging through the use of -/// internal id structures and delegate chaining. All basic operations for -/// handling liquid pledging are supplied as well as plugin features -/// to allow for expanded functionality. -contract LiquidPledging is LiquidPledgingBase { - - function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function addGiverAndDonate(uint64 idReceiver, address token, uint amount) - public - { - addGiverAndDonate(idReceiver, msg.sender, token, amount); - } - - function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) - public - { - require(donorAddress != 0); - // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver, token, amount); - } - - /// @notice This is how value enters the system and how pledges are created; - /// the ether is sent to the vault, an pledge for the Giver is created (or - /// found), the amount of ETH donated in wei is added to the `amount` in - /// the Giver's Pledge, and an LP transfer is done to the idReceiver for - /// the full amount - /// @param idGiver The id of the Giver donating - /// @param idReceiver The Admin receiving the donation; can be any Admin: - /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public - { - require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - require(amount > 0); - require(token != 0x0); - - PledgeAdmin storage sender = _findAdmin(idGiver); - require(sender.adminType == PledgeAdminType.Giver); - - // TODO should this be done at the end of this function? - // what re-entrancy issues are there if this is done here? - // if done at the end of the function, will that affect plugins? - require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` - - uint64 idPledge = _findOrCreatePledge( - idGiver, - new uint64[](0), // Creates empty array for delegationChain - 0, - 0, - 0, - token, - PledgeState.Pledged - ); - - Pledge storage pTo = _findPledge(idPledge); - pTo.amount += amount; - - Transfer(0, idPledge, amount); - - _transfer(idGiver, idPledge, amount, idReceiver); - } - - /// @notice Transfers amounts between pledges for internal accounting - /// @param idSender Id of the Admin that is transferring the amount from - /// Pledge to Pledge; this admin must have permissions to move the value - /// @param idPledge Id of the pledge that's moving the value - /// @param amount Quantity of ETH (in wei) that this pledge is transferring - /// the authority to withdraw from the vault - /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending - /// to a Giver, a Delegate or a Project; a Delegate sending to another - /// Delegate, or a Delegate pre-commiting it to a Project - function transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) public - { - _checkAdminOwner(idSender); - _transfer(idSender, idPledge, amount, idReceiver); - } - - /// @notice Authorizes a payment be made from the `vault` can be used by the - /// Giver to veto a pre-committed donation from a Delegate to an - /// intendedProject - /// @param idPledge Id of the pledge that is to be redeemed into ether - /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - - Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paying - ); - - _doTransfer(idPledge, idNewPledge, amount); - - PledgeAdmin storage owner = _findAdmin(p.owner); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); - } - - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState - /// from Paying to Paid - /// @param idPledge Id of the pledge that is to be withdrawn - /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paid - ); - - _doTransfer(idPledge, idNewPledge, amount); - } - - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState - /// from Paying back to Pledged - /// @param idPledge Id of the pledge that's withdraw is to be canceled - /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - // When a payment is canceled, never is assigned to a project. - uint64 idOldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - - idOldPledge = normalizePledge(idOldPledge); - - _doTransfer(idPledge, idOldPledge, amount); - } - - /// @notice Changes the `project.canceled` flag to `true`; cannot be undone - /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = _findAdmin(idProject); - _checkAdminOwner(idProject); - project.canceled = true; - - CancelProject(idProject); - } - - /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that - /// that sent it there in the first place, a Ctrl-z - /// @param idPledge Id of the pledge that is to be canceled - /// @param amount Quantity of ether (in wei) to be transfered to the - /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - require(p.oldPledge != 0); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); - _doTransfer(idPledge, oldPledge, amount); - } - - -//////// -// Multi pledge methods -//////// - - // @dev This set of functions makes moving a lot of pledges around much more - // efficient (saves gas) than calling these functions in series - - - /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods - uint constant D64 = 0x10000000000000000; - - /// @notice Transfers multiple amounts within multiple Pledges in an - /// efficient single call - /// @param idSender Id of the Admin that is transferring the amounts from - /// all the Pledges; this admin must have permissions to move the value - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or - /// Project sending to a Giver, a Delegate or a Project; a Delegate sending - /// to another Delegate, or a Delegate pre-commiting it to a Project - function mTransfer( - uint64 idSender, - uint[] pledgesAmounts, - uint64 idReceiver - ) public - { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - transfer(idSender, idPledge, amount, idReceiver); - } - } - - /// @notice Authorizes multiple amounts within multiple Pledges to be - /// withdrawn from the `vault` in an efficient single call - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - function mWithdraw(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - withdraw(idPledge, amount); - } - } - - /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - confirmPayment(idPledge, amount); - } - } - - /// @notice `mCancelPayment` allows for multiple pledges to be canceled - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - cancelPayment(idPledge, amount); - } - } - - /// @notice `mNormalizePledge` allows for multiple pledges to be - /// normalized efficiently - /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) public { - for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge(pledges[i]); - } - } -} - - -///File: ./contracts/test/TestSimpleProjectPlugin.sol - -pragma solidity ^0.4.11; - - - -// simple liquidPledging plugin contract for testing whitelist -contract TestSimpleProjectPlugin { - - uint64 public idProject; - bool initPending; - - event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - - function TestSimpleProjectPlugin() { - require(msg.sender != tx.origin); // Avoids being created directly by mistake. - initPending = true; - } - - function init( - LiquidPledging liquidPledging, - string name, - string url, - uint64 parentProject - ) { - require(initPending); - idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); - initPending = false; - } - - function beforeTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external returns (uint maxAllowed) { - require(!initPending); - BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - - function afterTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external { - require(!initPending); - AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - -} - - -///File: ./contracts/test/TestSimpleProjectPluginFactory.sol - -pragma solidity ^0.4.11; - - - - -// simple factory for deploying TestSimpleProjectPlugin.sol contract -contract TestSimpleProjectPluginFactory { - - function deploy( - LiquidPledging liquidPledging, - string name, - string url, - uint64 parentProject - ) { - TestSimpleProjectPlugin p = new TestSimpleProjectPlugin(); - p.init(liquidPledging, name, url, parentProject); - } - -} - - -///File: ./contracts/test/TestSimpleProjectPluginFactory.sol - -pragma solidity ^0.4.11; - - - - -// simple factory for deploying TestSimpleProjectPlugin.sol contract -contract TestSimpleProjectPluginFactory { - - function deploy( - LiquidPledging liquidPledging, - string name, - string url, - uint64 parentProject - ) { - TestSimpleProjectPlugin p = new TestSimpleProjectPlugin(); - p.init(liquidPledging, name, url, parentProject); - } - -} diff --git a/build/TestSimpleProjectPlugin_all.sol b/build/TestSimpleProjectPlugin_all.sol deleted file mode 100644 index 79a0e5d..0000000 --- a/build/TestSimpleProjectPlugin_all.sol +++ /dev/null @@ -1,2480 +0,0 @@ - - -///File: ./contracts/ILiquidPledgingPlugin.sol - -pragma solidity ^0.4.11; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -/// @dev `ILiquidPledgingPlugin` is the basic interface for any -/// liquid pledging plugin -contract ILiquidPledgingPlugin { - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated before a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function beforeTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount ) public returns (uint maxAllowed); - - /// @notice Plugins are used (much like web hooks) to initiate an action - /// upon any donation, delegation, or transfer; this is an optional feature - /// and allows for extreme customization of the contract. This function - /// implements any action that should be initiated after a transfer. - /// @param pledgeManager The admin or current manager of the pledge - /// @param pledgeFrom This is the Id from which value will be transfered. - /// @param pledgeTo This is the Id that value will be transfered to. - /// @param context The situation that is triggering the plugin: - /// 0 -> Plugin for the owner transferring pledge to another party - /// 1 -> Plugin for the first delegate transferring pledge to another party - /// 2 -> Plugin for the second delegate transferring pledge to another party - /// ... - /// 255 -> Plugin for the intendedProject transferring pledge to another party - /// - /// 256 -> Plugin for the owner receiving pledge to another party - /// 257 -> Plugin for the first delegate receiving pledge to another party - /// 258 -> Plugin for the second delegate receiving pledge to another party - /// ... - /// 511 -> Plugin for the intendedProject receiving pledge to another party - /// @param amount The amount of value that will be transfered. - function afterTransfer( - uint64 pledgeManager, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - address token, - uint amount - ) public; -} - - -///File: ./contracts/LiquidPledgingStorage.sol - -pragma solidity ^0.4.18; - - - -/// @dev This is an interface for `LPVault` which serves as a secure storage for -/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes -/// payments can Pledges be converted for ETH -interface ILPVault { - function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public; -} - -/// This contract contains all state variables used in LiquidPledging contracts -/// This is done to have everything in 1 location, b/c state variable layout -/// is MUST have be the same when performing an upgrade. -contract LiquidPledgingStorage { - enum PledgeAdminType { Giver, Delegate, Project } - enum PledgeState { Pledged, Paying, Paid } - - /// @dev This struct defines the details of a `PledgeAdmin` which are - /// commonly referenced by their index in the `admins` array - /// and can own pledges and act as delegates - struct PledgeAdmin { - PledgeAdminType adminType; // Giver, Delegate or Project - address addr; // Account or contract address for admin - uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto - uint64 parentProject; // Only for projects - bool canceled; //Always false except for canceled projects - - /// @dev if the plugin is 0x0 then nothing happens, if its an address - // than that smart contract is called when appropriate - ILiquidPledgingPlugin plugin; - string name; - string url; // Can be IPFS hash - } - - struct Pledge { - uint amount; - uint64[] delegationChain; // List of delegates in order of authority - uint64 owner; // PledgeAdmin - uint64 intendedProject; // Used when delegates are sending to projects - uint64 commitTime; // When the intendedProject will become the owner - uint64 oldPledge; // Points to the id that this Pledge was derived from - address token; - PledgeState pledgeState; // Pledged, Paying, Paid - } - - PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin - Pledge[] pledges; - /// @dev this mapping allows you to search for a specific pledge's - /// index number by the hash of that pledge - mapping (bytes32 => uint64) hPledge2idx; - - // this whitelist is for non-proxied plugins - mapping (bytes32 => bool) pluginContractWhitelist; - // this whitelist is for proxied plugins - mapping (address => bool) pluginInstanceWhitelist; - bool public whitelistDisabled = false; - - ILPVault public vault; - - // reserve 50 slots for future upgrades. I'm not sure if this is necessary - // but b/c of multiple inheritance used in lp, better safe then sorry. - // especially since it is free - uint[50] private storageOffset; -} - -///File: @aragon/os/contracts/acl/IACL.sol - -pragma solidity ^0.4.18; - - -interface IACL { - function initialize(address permissionsCreator) public; - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); -} - - -///File: @aragon/os/contracts/kernel/IKernel.sol - -pragma solidity ^0.4.18; - - - -interface IKernel { - event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app); - - function acl() public view returns (IACL); - function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool); - - function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id); - function getApp(bytes32 id) public view returns (address); -} - -///File: @aragon/os/contracts/apps/AppStorage.sol - -pragma solidity ^0.4.18; - - - - -contract AppStorage { - IKernel public kernel; - bytes32 public appId; - address internal pinnedCode; // used by Proxy Pinned - uint256 internal initializationBlock; // used by Initializable - uint256[95] private storageOffset; // forces App storage to start at after 100 slots - uint256 private offset; -} - - -///File: @aragon/os/contracts/common/Initializable.sol - -pragma solidity ^0.4.18; - - - - -contract Initializable is AppStorage { - modifier onlyInit { - require(initializationBlock == 0); - _; - } - - /** - * @return Block number in which the contract was initialized - */ - function getInitializationBlock() public view returns (uint256) { - return initializationBlock; - } - - /** - * @dev Function to be called by top level contract after initialization has finished. - */ - function initialized() internal onlyInit { - initializationBlock = getBlockNumber(); - } - - /** - * @dev Returns the current block number. - * Using a function rather than `block.number` allows us to easily mock the block number in - * tests. - */ - function getBlockNumber() internal view returns (uint256) { - return block.number; - } -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptExecutor.sol - -pragma solidity ^0.4.18; - - -interface IEVMScriptExecutor { - function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes); -} - - -///File: @aragon/os/contracts/evmscript/IEVMScriptRegistry.sol - -pragma solidity 0.4.18; - - -contract EVMScriptRegistryConstants { - bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256("evmreg.aragonpm.eth"); - bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256("app"), EVMSCRIPT_REGISTRY_APP_ID); -} - - -interface IEVMScriptRegistry { - function addScriptExecutor(address executor) external returns (uint id); - function disableScriptExecutor(uint256 executorId) external; - - function getScriptExecutor(bytes script) public view returns (address); -} - -///File: @aragon/os/contracts/evmscript/ScriptHelpers.sol - -pragma solidity 0.4.18; - - -library ScriptHelpers { - // To test with JS and compare with actual encoder. Maintaining for reference. - // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) } - // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) } - // This is truly not beautiful but lets no daydream to the day solidity gets reflection features - - function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) { - return encode(_a, _b, _c); - } - - function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) { - // A is positioned after the 3 position words - uint256 aPosition = 0x60; - uint256 bPosition = aPosition + 32 * abiLength(_a); - uint256 cPosition = bPosition + 32 * abiLength(_b); - uint256 length = cPosition + 32 * abiLength(_c); - - d = new bytes(length); - assembly { - // Store positions - mstore(add(d, 0x20), aPosition) - mstore(add(d, 0x40), bPosition) - mstore(add(d, 0x60), cPosition) - } - - // Copy memory to correct position - copy(d, getPtr(_a), aPosition, _a.length); - copy(d, getPtr(_b), bPosition, _b.length); - copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address - } - - function abiLength(bytes memory _a) internal pure returns (uint256) { - // 1 for length + - // memory words + 1 if not divisible for 32 to offset word - return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0); - } - - function abiLength(address[] _a) internal pure returns (uint256) { - // 1 for length + 1 per item - return 1 + _a.length; - } - - function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure { - uint dest; - assembly { - dest := add(add(_d, 0x20), _pos) - } - memcpy(dest, _src, _length + 32); - } - - function getPtr(bytes memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getPtr(address[] memory _x) internal pure returns (uint256 ptr) { - assembly { - ptr := _x - } - } - - function getSpecId(bytes _script) internal pure returns (uint32) { - return uint32At(_script, 0); - } - - function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := mload(add(_data, add(0x20, _location))) - } - } - - function addressAt(bytes _data, uint256 _location) internal pure returns (address result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), - 0x1000000000000000000000000) - } - } - - function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) { - uint256 word = uint256At(_data, _location); - - assembly { - result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), - 0x100000000000000000000000000000000000000000000000000000000) - } - } - - function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) { - assembly { - result := add(_data, add(0x20, _location)) - } - } - - function toBytes(bytes4 _sig) internal pure returns (bytes) { - bytes memory payload = new bytes(4); - payload[0] = bytes1(_sig); - payload[1] = bytes1(_sig << 8); - payload[2] = bytes1(_sig << 16); - payload[3] = bytes1(_sig << 24); - return payload; - } - - function memcpy(uint _dest, uint _src, uint _len) public pure { - uint256 src = _src; - uint256 dest = _dest; - uint256 len = _len; - - // Copy word-length chunks while possible - for (; len >= 32; len -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = 256 ** (32 - len) - 1; - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } -} - -///File: @aragon/os/contracts/evmscript/EVMScriptRunner.sol - -pragma solidity ^0.4.18; - - - - - - - - -contract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants { - using ScriptHelpers for bytes; - - function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) { - // TODO: Too much data flying around, maybe extracting spec id here is cheaper - address executorAddr = getExecutor(_script); - require(executorAddr != address(0)); - - bytes memory calldataArgs = _script.encode(_input, _blacklist); - bytes4 sig = IEVMScriptExecutor(0).execScript.selector; - - require(executorAddr.delegatecall(sig, calldataArgs)); - - return returnedDataDecoded(); - } - - function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) { - return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script)); - } - - // TODO: Internal - function getExecutorRegistry() internal view returns (IEVMScriptRegistry) { - address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP); - return IEVMScriptRegistry(registryAddr); - } - - /** - * @dev copies and returns last's call data. Needs to ABI decode first - */ - function returnedDataDecoded() internal view returns (bytes ret) { - assembly { - let size := returndatasize - switch size - case 0 {} - default { - ret := mload(0x40) // free mem ptr get - mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set - returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data - } - } - return ret; - } - - modifier protectState { - address preKernel = kernel; - bytes32 preAppId = appId; - _; // exec - require(kernel == preKernel); - require(appId == preAppId); - } -} - -///File: @aragon/os/contracts/acl/ACLSyntaxSugar.sol - -pragma solidity 0.4.18; - - -contract ACLSyntaxSugar { - function arr() internal pure returns (uint256[] r) {} - - function arr(bytes32 _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a) internal pure returns (uint256[] r) { - return arr(uint256(_a)); - } - - function arr(address _a, address _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), _b, _c); - } - - function arr(address _a, uint256 _b) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b)); - } - - function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), _c, _d, _e); - } - - function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) { - return arr(uint256(_a), uint256(_b), uint256(_c)); - } - - function arr(uint256 _a) internal pure returns (uint256[] r) { - r = new uint256[](1); - r[0] = _a; - } - - function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) { - r = new uint256[](2); - r[0] = _a; - r[1] = _b; - } - - function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) { - r = new uint256[](3); - r[0] = _a; - r[1] = _b; - r[2] = _c; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) { - r = new uint256[](4); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - } - - function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) { - r = new uint256[](5); - r[0] = _a; - r[1] = _b; - r[2] = _c; - r[3] = _d; - r[4] = _e; - } -} - - -contract ACLHelpers { - function decodeParamOp(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 30)); - } - - function decodeParamId(uint256 _x) internal pure returns (uint8 b) { - return uint8(_x >> (8 * 31)); - } - - function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) { - a = uint32(_x); - b = uint32(_x >> (8 * 4)); - c = uint32(_x >> (8 * 8)); - } -} - - -///File: @aragon/os/contracts/apps/AragonApp.sol - -pragma solidity ^0.4.18; - - - - - - - -contract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner { - modifier auth(bytes32 _role) { - require(canPerform(msg.sender, _role, new uint256[](0))); - _; - } - - modifier authP(bytes32 _role, uint256[] params) { - require(canPerform(msg.sender, _role, params)); - _; - } - - function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) { - bytes memory how; // no need to init memory as it is never used - if (params.length > 0) { - uint256 byteLength = params.length * 32; - assembly { - how := params // forced casting - mstore(how, byteLength) - } - } - return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how); - } -} - - -///File: ./contracts/LiquidPledgingACLHelpers.sol - -pragma solidity ^0.4.18; - -contract LiquidPledgingACLHelpers { - function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) { - r = new uint[](4); - r[0] = uint(a); - r[1] = uint(b); - r[2] = uint(c); - r[3] = d; - r[4] = uint(e); - } - - function arr(bool a) internal pure returns (uint[] r) { - r = new uint[](1); - uint _a; - assembly { - _a := a // forced casting - } - r[0] = _a; - } -} - -///File: ./contracts/LiquidPledgingPlugins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - -contract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers { - - bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256("PLUGIN_MANAGER_ROLE"); - - function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external { - pluginInstanceWhitelist[addr] = true; - } - - function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public { - pluginContractWhitelist[contractHash] = true; - } - - function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) { - for (uint8 i = 0; i < contractHashes.length; i++) { - addValidPluginContract(contractHashes[i]); - } - } - - function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) { - pluginContractWhitelist[contractHash] = false; - } - - function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) { - pluginInstanceWhitelist[addr] = false; - } - - function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) { - whitelistDisabled = !useWhitelist; - } - - function isValidPlugin(address addr) public view returns(bool) { - if (whitelistDisabled || addr == 0x0) { - return true; - } - - // first check pluginInstances - if (pluginInstanceWhitelist[addr]) { - return true; - } - - // if the addr isn't a valid instance, check the contract code - bytes32 contractHash = getCodeHash(addr); - - return pluginContractWhitelist[contractHash]; - } - - function getCodeHash(address addr) public view returns(bytes32) { - bytes memory o_code; - assembly { - // retrieve the size of the code, this needs assembly - let size := extcodesize(addr) - // allocate output byte array - this could also be done without assembly - // by using o_code = new bytes(size) - o_code := mload(0x40) - mstore(o_code, size) // store length in memory - // actually retrieve the code, this needs assembly - extcodecopy(addr, add(o_code, 0x20), 0, size) - } - return keccak256(o_code); - } -} - -///File: ./contracts/PledgeAdmins.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -contract PledgeAdmins is AragonApp, LiquidPledgingPlugins { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_SUBPROJECT_LEVEL = 20; - uint constant MAX_INTERPROJECT_LEVEL = 20; - - // Events - event GiverAdded(uint64 indexed idGiver, string url); - event GiverUpdated(uint64 indexed idGiver, string url); - event DelegateAdded(uint64 indexed idDelegate, string url); - event DelegateUpdated(uint64 indexed idDelegate, string url); - event ProjectAdded(uint64 indexed idProject, string url); - event ProjectUpdated(uint64 indexed idProject, string url); - -//////////////////// -// Public functions -//////////////////// - - /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address - /// @param name The name used to identify the Giver - /// @param url The link to the Giver's profile often an IPFS hash - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param plugin This is Giver's liquid pledge plugin allowing for - /// extended functionality - /// @return idGiver The id number used to reference this Admin - function addGiver( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idGiver) - { - return addGiver( - msg.sender, - name, - url, - commitTime, - plugin - ); - } - - // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy? - function addGiver( - address addr, - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) public returns (uint64 idGiver) - { - require(isValidPlugin(plugin)); // Plugin check - - idGiver = uint64(admins.length); - - // Save the fields - admins.push( - PledgeAdmin( - PledgeAdminType.Giver, - addr, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - GiverAdded(idGiver, url); - } - - /// @notice Updates a Giver's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Giver - /// @param idGiver This is the Admin id number used to specify the Giver - /// @param newAddr The new address that represents this Giver - /// @param newName The new name used to identify the Giver - /// @param newUrl The new link to the Giver's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - function updateGiver( - uint64 idGiver, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage giver = _findAdmin(idGiver); - require(msg.sender == giver.addr); - require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver - giver.addr = newAddr; - giver.name = newName; - giver.url = newUrl; - giver.commitTime = newCommitTime; - - GiverUpdated(idGiver, newUrl); - } - - /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Delegate - /// @param url The link to the Delegate's profile often an IPFS hash - /// @param commitTime Sets the length of time in seconds that this delegate - /// can be vetoed. Whenever this delegate is in a delegate chain the time - /// allowed to veto any event must be greater than or equal to this time. - /// @param plugin This is Delegate's liquid pledge plugin allowing for - /// extended functionality - /// @return idxDelegate The id number used to reference this Delegate within - /// the PLEDGE_ADMIN array - function addDelegate( - string name, - string url, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idDelegate) - { - require(isValidPlugin(plugin)); // Plugin check - - idDelegate = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Delegate, - msg.sender, - commitTime, - 0, - false, - plugin, - name, - url) - ); - - DelegateAdded(idDelegate, url); - } - - /// @notice Updates a Delegate's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin, and it must be called - /// by the current address of the Delegate - /// @param idDelegate The Admin id number used to specify the Delegate - /// @param newAddr The new address that represents this Delegate - /// @param newName The new name used to identify the Delegate - /// @param newUrl The new link to the Delegate's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds that this - /// delegate can be vetoed. Whenever this delegate is in a delegate chain - /// the time allowed to veto any event must be greater than or equal to - /// this time. - function updateDelegate( - uint64 idDelegate, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage delegate = _findAdmin(idDelegate); - require(msg.sender == delegate.addr); - require(delegate.adminType == PledgeAdminType.Delegate); - delegate.addr = newAddr; - delegate.name = newName; - delegate.url = newUrl; - delegate.commitTime = newCommitTime; - - DelegateUpdated(idDelegate, newUrl); - } - - /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr - /// @param name The name used to identify the Project - /// @param url The link to the Project's profile often an IPFS hash - /// @param projectAdmin The address for the trusted project manager - /// @param parentProject The Admin id number for the parent project or 0 if - /// there is no parentProject - /// @param commitTime Sets the length of time in seconds the Project has to - /// veto when the Project delegates to another Delegate and they pledge - /// those funds to a project - /// @param plugin This is Project's liquid pledge plugin allowing for - /// extended functionality - /// @return idProject The id number used to reference this Admin - function addProject( - string name, - string url, - address projectAdmin, - uint64 parentProject, - uint64 commitTime, - ILiquidPledgingPlugin plugin - ) external returns (uint64 idProject) - { - require(isValidPlugin(plugin)); - - if (parentProject != 0) { - PledgeAdmin storage a = _findAdmin(parentProject); - // getProjectLevel will check that parentProject has a `Project` adminType - require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL); - } - - idProject = uint64(admins.length); - - admins.push( - PledgeAdmin( - PledgeAdminType.Project, - projectAdmin, - commitTime, - parentProject, - false, - plugin, - name, - url) - ); - - ProjectAdded(idProject, url); - } - - /// @notice Updates a Project's info to change the address, name, url, or - /// commitTime, it cannot be used to change a plugin or a parentProject, - /// and it must be called by the current address of the Project - /// @param idProject The Admin id number used to specify the Project - /// @param newAddr The new address that represents this Project - /// @param newName The new name used to identify the Project - /// @param newUrl The new link to the Project's profile often an IPFS hash - /// @param newCommitTime Sets the length of time in seconds the Project has - /// to veto when the Project delegates to a Delegate and they pledge those - /// funds to a project - function updateProject( - uint64 idProject, - address newAddr, - string newName, - string newUrl, - uint64 newCommitTime - ) external - { - PledgeAdmin storage project = _findAdmin(idProject); - - require(msg.sender == project.addr); - require(project.adminType == PledgeAdminType.Project); - - project.addr = newAddr; - project.name = newName; - project.url = newUrl; - project.commitTime = newCommitTime; - - ProjectUpdated(idProject, newUrl); - } - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice A constant getter used to check how many total Admins exist - /// @return The total number of admins (Givers, Delegates and Projects) . - function numberOfPledgeAdmins() external view returns(uint) { - return admins.length - 1; - } - - /// @notice A constant getter to check the details of a specified Admin - /// @return addr Account or contract address for admin - /// @return name Name of the pledgeAdmin - /// @return url The link to the Project's profile often an IPFS hash - /// @return commitTime The length of time in seconds the Admin has to veto - /// when the Admin delegates to a Delegate and that Delegate pledges those - /// funds to a project - /// @return parentProject The Admin id number for the parent project or 0 - /// if there is no parentProject - /// @return canceled 0 for Delegates & Givers, true if a Project has been - /// canceled - /// @return plugin This is Project's liquidPledging plugin allowing for - /// extended functionality - function getPledgeAdmin(uint64 idAdmin) external view returns ( - PledgeAdminType adminType, - address addr, - string name, - string url, - uint64 commitTime, - uint64 parentProject, - bool canceled, - address plugin - ) { - PledgeAdmin storage a = _findAdmin(idAdmin); - adminType = a.adminType; - addr = a.addr; - name = a.name; - url = a.url; - commitTime = a.commitTime; - parentProject = a.parentProject; - canceled = a.canceled; - plugin = address(a.plugin); - } - - /// @notice A getter to find if a specified Project has been canceled - /// @param projectId The Admin id number used to specify the Project - /// @return True if the Project has been canceled - function isProjectCanceled(uint64 projectId) - public view returns (bool) - { - PledgeAdmin storage a = _findAdmin(projectId); - - if (a.adminType == PledgeAdminType.Giver) { - return false; - } - - assert(a.adminType == PledgeAdminType.Project); - - if (a.canceled) { - return true; - } - if (a.parentProject == 0) { - return false; - } - - return isProjectCanceled(a.parentProject); - } - -/////////////////// -// Internal methods -/////////////////// - - /// @notice A getter to look up a Admin's details - /// @param idAdmin The id for the Admin to lookup - /// @return The PledgeAdmin struct for the specified Admin - function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) { - require(idAdmin < admins.length); - return admins[idAdmin]; - } - - /// @notice Find the level of authority a specific Project has - /// using a recursive loop - /// @param a The project admin being queried - /// @return The level of authority a specific Project has - function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) { - assert(a.adminType == PledgeAdminType.Project); - - if (a.parentProject == 0) { - return(1); - } - - PledgeAdmin storage parent = _findAdmin(a.parentProject); - return _getProjectLevel(parent) + 1; - } -} - -///File: ./contracts/Pledges.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - -contract Pledges is AragonApp, LiquidPledgingStorage { - - // Limits inserted to prevent large loops that could prevent canceling - uint constant MAX_DELEGATES = 10; - - // a constant for when a delegate is requested that is not in the system - uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF; - -///////////////////////////// -// Public constant functions -//////////////////////////// - - /// @notice A constant getter that returns the total number of pledges - /// @return The total number of Pledges in the system - function numberOfPledges() external view returns (uint) { - return pledges.length - 1; - } - - /// @notice A getter that returns the details of the specified pledge - /// @param idPledge the id number of the pledge being queried - /// @return the amount, owner, the number of delegates (but not the actual - /// delegates, the intendedProject (if any), the current commit time and - /// the previous pledge this pledge was derived from - function getPledge(uint64 idPledge) external view returns( - uint amount, - uint64 owner, - uint64 nDelegates, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState pledgeState - ) { - Pledge memory p = _findPledge(idPledge); - amount = p.amount; - owner = p.owner; - nDelegates = uint64(p.delegationChain.length); - intendedProject = p.intendedProject; - commitTime = p.commitTime; - oldPledge = p.oldPledge; - token = p.token; - pledgeState = p.pledgeState; - } - - -//////////////////// -// Internal methods -//////////////////// - - /// @notice This creates a Pledge with an initial amount of 0 if one is not - /// created already; otherwise it finds the pledge with the specified - /// attributes; all pledges technically exist, if the pledge hasn't been - /// created in this system yet it simply isn't in the hash array - /// hPledge2idx[] yet - /// @param owner The owner of the pledge being looked up - /// @param delegationChain The list of delegates in order of authority - /// @param intendedProject The project this pledge will Fund after the - /// commitTime has passed - /// @param commitTime The length of time in seconds the Giver has to - /// veto when the Giver's delegates Pledge funds to a project - /// @param oldPledge This value is used to store the pledge the current - /// pledge was came from, and in the case a Project is canceled, the Pledge - /// will revert back to it's previous state - /// @param state The pledge state: Pledged, Paying, or state - /// @return The hPledge2idx index number - function _findOrCreatePledge( - uint64 owner, - uint64[] delegationChain, - uint64 intendedProject, - uint64 commitTime, - uint64 oldPledge, - address token, - PledgeState state - ) internal returns (uint64) - { - bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state); - uint64 id = hPledge2idx[hPledge]; - if (id > 0) { - return id; - } - - id = uint64(pledges.length); - hPledge2idx[hPledge] = id; - pledges.push( - Pledge( - 0, - delegationChain, - owner, - intendedProject, - commitTime, - oldPledge, - token, - state - ) - ); - return id; - } - - /// @param idPledge the id of the pledge to load from storage - /// @return The Pledge - function _findPledge(uint64 idPledge) internal view returns(Pledge storage) { - require(idPledge < pledges.length); - return pledges[idPledge]; - } - - /// @notice A getter that searches the delegationChain for the level of - /// authority a specific delegate has within a Pledge - /// @param p The Pledge that will be searched - /// @param idDelegate The specified delegate that's searched for - /// @return If the delegate chain contains the delegate with the - /// `admins` array index `idDelegate` this returns that delegates - /// corresponding index in the delegationChain. Otherwise it returns - /// the NOTFOUND constant - function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) { - for (uint i = 0; i < p.delegationChain.length; i++) { - if (p.delegationChain[i] == idDelegate) { - return uint64(i); - } - } - return NOTFOUND; - } - - /// @notice A getter to find how many old "parent" pledges a specific Pledge - /// had using a self-referential loop - /// @param p The Pledge being queried - /// @return The number of old "parent" pledges a specific Pledge had - function _getPledgeLevel(Pledge p) internal view returns(uint) { - if (p.oldPledge == 0) { - return 0; - } - Pledge storage oldP = _findPledge(p.oldPledge); - return _getPledgeLevel(oldP) + 1; // a loop lookup - } -} - - -///File: giveth-common-contracts/contracts/ERC20.sol - -pragma solidity ^0.4.15; - - -/** - * @title ERC20 - * @dev A standard interface for tokens. - * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md - */ -contract ERC20 { - - /// @dev Returns the total token supply - function totalSupply() public constant returns (uint256 supply); - - /// @dev Returns the account balance of the account with address _owner - function balanceOf(address _owner) public constant returns (uint256 balance); - - /// @dev Transfers _value number of tokens to address _to - function transfer(address _to, uint256 _value) public returns (bool success); - - /// @dev Transfers _value number of tokens from address _from to address _to - function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); - - /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount - function approve(address _spender, uint256 _value) public returns (bool success); - - /// @dev Returns the amount which _spender is still allowed to withdraw from _owner - function allowance(address _owner, address _spender) public constant returns (uint256 remaining); - - event Transfer(address indexed _from, address indexed _to, uint256 _value); - event Approval(address indexed _owner, address indexed _spender, uint256 _value); - -} - - -///File: ./contracts/EscapableApp.sol - -pragma solidity ^0.4.18; -/* - Copyright 2016, Jordi Baylina - Contributor: Adrià Massanet - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -// import "./Owned.sol"; - - - - -/// @dev `EscapableApp` is a base level contract; it creates an escape hatch -/// function that can be called in an -/// emergency that will allow designated addresses to send any ether or tokens -/// held in the contract to an `escapeHatchDestination` as long as they were -/// not blacklisted -contract EscapableApp is AragonApp { - // warning whoever has this role can move all funds to the `escapeHatchDestination` - bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256("ESCAPE_HATCH_CALLER_ROLE"); - - event EscapeHatchBlackistedToken(address token); - event EscapeHatchCalled(address token, uint amount); - - address public escapeHatchDestination; - mapping (address=>bool) private escapeBlacklist; // Token contract addresses - uint[20] private storageOffset; // reserve 20 slots for future upgrades - - function EscapableApp(address _escapeHatchDestination) public { - _init(_escapeHatchDestination); - } - - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _escapeHatchDestination) onlyInit public { - _init(_escapeHatchDestination); - } - - /// @notice The `escapeHatch()` should only be called as a last resort if a - /// security issue is uncovered or something unexpected happened - /// @param _token to transfer, use 0x0 for ether - function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) { - require(escapeBlacklist[_token]==false); - - uint256 balance; - - /// @dev Logic for ether - if (_token == 0x0) { - balance = this.balance; - escapeHatchDestination.transfer(balance); - EscapeHatchCalled(_token, balance); - return; - } - /// @dev Logic for tokens - ERC20 token = ERC20(_token); - balance = token.balanceOf(this); - require(token.transfer(escapeHatchDestination, balance)); - EscapeHatchCalled(_token, balance); - } - - /// @notice Checks to see if `_token` is in the blacklist of tokens - /// @param _token the token address being queried - /// @return False if `_token` is in the blacklist and can't be taken out of - /// the contract via the `escapeHatch()` - function isTokenEscapable(address _token) view external returns (bool) { - return !escapeBlacklist[_token]; - } - - function _init(address _escapeHatchDestination) internal { - initialized(); - require(_escapeHatchDestination != 0x0); - - escapeHatchDestination = _escapeHatchDestination; - } - - /// @notice Creates the blacklist of tokens that are not able to be taken - /// out of the contract; can only be done at the deployment, and the logic - /// to add to the blacklist will be in the constructor of a child contract - /// @param _token the token contract address that is to be blacklisted - function _blacklistEscapeToken(address _token) internal { - escapeBlacklist[_token] = true; - EscapeHatchBlackistedToken(_token); - } -} - - -///File: ./contracts/LiquidPledgingBase.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina - Contributors: Adrià Massanet , RJ Ewing, Griff - Green, Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - - - - -/// @dev `LiquidPledgingBase` is the base level contract used to carry out -/// liquidPledging's most basic functions, mostly handling and searching the -/// data structures -contract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges { - - event Transfer(uint indexed from, uint indexed to, uint amount); - event CancelProject(uint indexed idProject); - -///////////// -// Modifiers -///////////// - - /// @dev The `vault`is the only addresses that can call a function with this - /// modifier - modifier onlyVault() { - require(msg.sender == address(vault)); - _; - } - -/////////////// -// Constructor -/////////////// - - function initialize(address _escapeHatchDestination) onlyInit public { - require(false); // overload the EscapableApp - _escapeHatchDestination; - } - - /// @param _vault The vault where the ETH backing the pledges is stored - /// @param _escapeHatchDestination The address of a safe location (usu a - /// Multisig) to send the ether held in this contract; if a neutral address - /// is required, the WHG Multisig is an option: - /// 0x8Ff920020c8AD673661c8117f2855C384758C572 - function initialize(address _vault, address _escapeHatchDestination) onlyInit public { - super.initialize(_escapeHatchDestination); - require(_vault != 0x0); - - vault = ILPVault(_vault); - - admins.length = 1; // we reserve the 0 admin - pledges.length = 1; // we reserve the 0 pledge - } - - -///////////////////////////// -// Public constant functions -///////////////////////////// - - /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index - /// @param idPledge The id number representing the pledge being queried - /// @param idxDelegate The index number for the delegate in this Pledge - function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns( - uint64 idDelegate, - address addr, - string name - ) { - Pledge storage p = _findPledge(idPledge); - idDelegate = p.delegationChain[idxDelegate - 1]; - PledgeAdmin storage delegate = _findAdmin(idDelegate); - addr = delegate.addr; - name = delegate.name; - } - -/////////////////// -// Public functions -/////////////////// - - /// @notice Only affects pledges with the Pledged PledgeState for 2 things: - /// #1: Checks if the pledge should be committed. This means that - /// if the pledge has an intendedProject and it is past the - /// commitTime, it changes the owner to be the proposed project - /// (The UI will have to read the commit time and manually do what - /// this function does to the pledge for the end user - /// at the expiration of the commitTime) - /// - /// #2: Checks to make sure that if there has been a cancellation in the - /// chain of projects, the pledge's owner has been changed - /// appropriately. - /// - /// This function can be called by anybody at anytime on any pledge. - /// In general it can be called to force the calls of the affected - /// plugins, which also need to be predicted by the UI - /// @param idPledge This is the id of the pledge that will be normalized - /// @return The normalized Pledge! - function normalizePledge(uint64 idPledge) public returns(uint64) { - Pledge storage p = _findPledge(idPledge); - - // Check to make sure this pledge hasn't already been used - // or is in the process of being used - if (p.pledgeState != PledgeState.Pledged) { - return idPledge; - } - - // First send to a project if it's proposed and committed - if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) { - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - p.intendedProject, - new uint64[](0), - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, p.amount); - idPledge = toPledge; - p = _findPledge(idPledge); - } - - toPledge = _getOldestPledgeNotCanceled(idPledge); - if (toPledge != idPledge) { - _doTransfer(idPledge, toPledge, p.amount); - } - - return toPledge; - } - -//////////////////// -// Internal methods -//////////////////// - - /// @notice A check to see if the msg.sender is the owner or the - /// plugin contract for a specific Admin - /// @param idAdmin The id of the admin being checked - function _checkAdminOwner(uint64 idAdmin) internal view { - PledgeAdmin storage a = _findAdmin(idAdmin); - require(msg.sender == address(a.plugin) || msg.sender == a.addr); - } - - function _transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - require(idReceiver > 0); // prevent burning value - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage receiver = _findAdmin(idReceiver); - - require(p.pledgeState == PledgeState.Pledged); - - // If the sender is the owner of the Pledge - if (p.owner == idSender) { - - if (receiver.adminType == PledgeAdminType.Giver) { - _transferOwnershipToGiver(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Project) { - _transferOwnershipToProject(idPledge, amount, idReceiver); - return; - } else if (receiver.adminType == PledgeAdminType.Delegate) { - - uint recieverDIdx = _getDelegateIdx(p, idReceiver); - if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) { - // if there is an intendedProject and the receiver is in the delegationChain, - // then we want to preserve the delegationChain as this is a veto of the - // intendedProject by the owner - - if (recieverDIdx == p.delegationChain.length - 1) { - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged); - _doTransfer(idPledge, toPledge, amount); - return; - } - - _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1); - return; - } - // owner is not vetoing an intendedProject and is transferring the pledge to a delegate, - // so we want to reset the delegationChain - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // This should never be reached as the receiver.adminType - // should always be either a Giver, Project, or Delegate - assert(false); - } - - // If the sender is a Delegate - uint senderDIdx = _getDelegateIdx(p, idSender); - if (senderDIdx != NOTFOUND) { - - // And the receiver is another Giver - if (receiver.adminType == PledgeAdminType.Giver) { - // Only transfer to the Giver who owns the pledge - assert(p.owner == idReceiver); - _undelegate(idPledge, amount, p.delegationChain.length); - return; - } - - // And the receiver is another Delegate - if (receiver.adminType == PledgeAdminType.Delegate) { - uint receiverDIdx = _getDelegateIdx(p, idReceiver); - - // And not in the delegationChain - if (receiverDIdx == NOTFOUND) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - - // And part of the delegationChain and is after the sender, then - // all of the other delegates after the sender are removed and - // the receiver is appended at the end of the delegationChain - } else if (receiverDIdx > senderDIdx) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _appendDelegate(idPledge, amount, idReceiver); - return; - } - - // And is already part of the delegate chain but is before the - // sender, then the sender and all of the other delegates after - // the RECEIVER are removed from the delegationChain - //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed? - _undelegate( - idPledge, - amount, - p.delegationChain.length - receiverDIdx - 1 - ); - return; - } - - // And the receiver is a Project, all the delegates after the sender - // are removed and the amount is pre-committed to the project - if (receiver.adminType == PledgeAdminType.Project) { - idPledge = _undelegate( - idPledge, - amount, - p.delegationChain.length - senderDIdx - 1 - ); - _proposeAssignProject(idPledge, amount, idReceiver); - return; - } - } - assert(false); // When the sender is not an owner or a delegate - } - - /// @notice `transferOwnershipToProject` allows for the transfer of - /// ownership to the project, but it can also be called by a project - /// to un-delegate everyone by setting one's own id for the idReceiver - /// @param idPledge the id of the pledge to be transfered. - /// @param amount Quantity of value that's being transfered - /// @param idReceiver The new owner of the project (or self to un-delegate) - function _transferOwnershipToProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - // Ensure that the pledge is not already at max pledge depth - // and the project has not been canceled - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 oldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - uint64 toPledge = _findOrCreatePledge( - idReceiver, // Set the new owner - new uint64[](0), // clear the delegation chain - 0, - 0, - oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - - /// @notice `transferOwnershipToGiver` allows for the transfer of - /// value back to the Giver, value is placed in a pledged state - /// without being attached to a project, delegation chain, or time line. - /// @param idPledge the id of the pledge to be transferred. - /// @param amount Quantity of value that's being transferred - /// @param idReceiver The new owner of the pledge - function _transferOwnershipToGiver( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - uint64 toPledge = _findOrCreatePledge( - idReceiver, - new uint64[](0), - 0, - 0, - 0, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's being chained. - /// @param idReceiver The delegate to be added at the end of the chain - function _appendDelegate( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(p.delegationChain.length < MAX_DELEGATES); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length + 1 - ); - for (uint i = 0; i < p.delegationChain.length; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - - // Make the last item in the array the idReceiver - newDelegationChain[p.delegationChain.length] = idReceiver; - - uint64 toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `appendDelegate` allows for a delegate to be added onto the - /// end of the delegate chain for a given Pledge. - /// @param idPledge the id of the pledge thats delegate chain will be modified. - /// @param amount Quantity of value that's shifted from delegates. - /// @param q Number (or depth) of delegates to remove - /// @return toPledge The id for the pledge being adjusted or created - function _undelegate( - uint64 idPledge, - uint amount, - uint q - ) internal returns (uint64 toPledge) - { - Pledge storage p = _findPledge(idPledge); - uint64[] memory newDelegationChain = new uint64[]( - p.delegationChain.length - q - ); - - for (uint i = 0; i < p.delegationChain.length - q; i++) { - newDelegationChain[i] = p.delegationChain[i]; - } - toPledge = _findOrCreatePledge( - p.owner, - newDelegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `proposeAssignProject` proposes the assignment of a pledge - /// to a specific project. - /// @dev This function should potentially be named more specifically. - /// @param idPledge the id of the pledge that will be assigned. - /// @param amount Quantity of value this pledge leader would be assigned. - /// @param idReceiver The project this pledge will potentially - /// be assigned to. - function _proposeAssignProject( - uint64 idPledge, - uint amount, - uint64 idReceiver - ) internal - { - Pledge storage p = _findPledge(idPledge); - - require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL); - require(!isProjectCanceled(idReceiver)); - - uint64 toPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - idReceiver, - uint64(_getTime() + _maxCommitTime(p)), - p.oldPledge, - p.token, - PledgeState.Pledged - ); - _doTransfer(idPledge, toPledge, amount); - } - - /// @notice `doTransfer` is designed to allow for pledge amounts to be - /// shifted around internally. - /// @param from This is the id of the pledge from which value will be transferred. - /// @param to This is the id of the pledge that value will be transferred to. - /// @param _amount The amount of value that will be transferred. - function _doTransfer(uint64 from, uint64 to, uint _amount) internal { - uint amount = _callPlugins(true, from, to, _amount); - if (from == to) { - return; - } - if (amount == 0) { - return; - } - - Pledge storage pFrom = _findPledge(from); - Pledge storage pTo = _findPledge(to); - - require(pFrom.amount >= amount); - pFrom.amount -= amount; - pTo.amount += amount; - - Transfer(from, to, amount); - _callPlugins(false, from, to, amount); - } - - /// @notice A getter to find the longest commitTime out of the owner and all - /// the delegates for a specified pledge - /// @param p The Pledge being queried - /// @return The maximum commitTime out of the owner and all the delegates - function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) { - PledgeAdmin storage a = _findAdmin(p.owner); - commitTime = a.commitTime; // start with the owner's commitTime - - for (uint i = 0; i < p.delegationChain.length; i++) { - a = _findAdmin(p.delegationChain[i]); - - // If a delegate's commitTime is longer, make it the new commitTime - if (a.commitTime > commitTime) { - commitTime = a.commitTime; - } - } - } - - /// @notice A getter to find the oldest pledge that hasn't been canceled - /// @param idPledge The starting place to lookup the pledges - /// @return The oldest idPledge that hasn't been canceled (DUH!) - function _getOldestPledgeNotCanceled( - uint64 idPledge - ) internal view returns(uint64) - { - if (idPledge == 0) { - return 0; - } - - Pledge storage p = _findPledge(idPledge); - PledgeAdmin storage admin = _findAdmin(p.owner); - - if (admin.adminType == PledgeAdminType.Giver) { - return idPledge; - } - - assert(admin.adminType == PledgeAdminType.Project); - if (!isProjectCanceled(p.owner)) { - return idPledge; - } - - return _getOldestPledgeNotCanceled(p.oldPledge); - } - - /// @notice `callPlugin` is used to trigger the general functions in the - /// plugin for any actions needed before and after a transfer happens. - /// Specifically what this does in relation to the plugin is something - /// that largely depends on the functions of that plugin. This function - /// is generally called in pairs, once before, and once after a transfer. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param adminId This should be the Id of the *trusted* individual - /// who has control over this plugin. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param context The situation that is triggering the plugin. See plugin - /// for a full description of contexts. - /// @param amount The amount of value that is being transfered. - function _callPlugin( - bool before, - uint64 adminId, - uint64 fromPledge, - uint64 toPledge, - uint64 context, - address token, - uint amount - ) internal returns (uint allowedAmount) - { - uint newAmount; - allowedAmount = amount; - PledgeAdmin storage admin = _findAdmin(adminId); - - // Checks admin has a plugin assigned and a non-zero amount is requested - if (address(admin.plugin) != 0 && allowedAmount > 0) { - // There are two separate functions called in the plugin. - // One is called before the transfer and one after - if (before) { - newAmount = admin.plugin.beforeTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - require(newAmount <= allowedAmount); - allowedAmount = newAmount; - } else { - admin.plugin.afterTransfer( - adminId, - fromPledge, - toPledge, - context, - token, - amount - ); - } - } - } - - /// @notice `callPluginsPledge` is used to apply plugin calls to - /// the delegate chain and the intended project if there is one. - /// It does so in either a transferring or receiving context based - /// on the `p` and `fromPledge` parameters. - /// @param before This toggle determines whether the plugin call is occuring - /// before or after a transfer. - /// @param idPledge This is the id of the pledge on which this plugin - /// is being called. - /// @param fromPledge This is the Id from which value is being transfered. - /// @param toPledge This is the Id that value is being transfered to. - /// @param amount The amount of value that is being transfered. - function _callPluginsPledge( - bool before, - uint64 idPledge, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - // Determine if callPlugin is being applied in a receiving - // or transferring context - uint64 offset = idPledge == fromPledge ? 0 : 256; - allowedAmount = amount; - Pledge storage p = _findPledge(idPledge); - - // Always call the plugin on the owner - allowedAmount = _callPlugin( - before, - p.owner, - fromPledge, - toPledge, - offset, - p.token, - allowedAmount - ); - - // Apply call plugin to all delegates - for (uint64 i = 0; i < p.delegationChain.length; i++) { - allowedAmount = _callPlugin( - before, - p.delegationChain[i], - fromPledge, - toPledge, - offset + i + 1, - p.token, - allowedAmount - ); - } - - // If there is an intended project also call the plugin in - // either a transferring or receiving context based on offset - // on the intended project - if (p.intendedProject > 0) { - allowedAmount = _callPlugin( - before, - p.intendedProject, - fromPledge, - toPledge, - offset + 255, - p.token, - allowedAmount - ); - } - } - - /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer - /// context and once for the receiving context. The aggregated - /// allowed amount is then returned. - /// @param before This toggle determines whether the plugin call is occurring - /// before or after a transfer. - /// @param fromPledge This is the Id from which value is being transferred. - /// @param toPledge This is the Id that value is being transferred to. - /// @param amount The amount of value that is being transferred. - function _callPlugins( - bool before, - uint64 fromPledge, - uint64 toPledge, - uint amount - ) internal returns (uint allowedAmount) - { - allowedAmount = amount; - - // Call the plugins in the transfer context - allowedAmount = _callPluginsPledge( - before, - fromPledge, - fromPledge, - toPledge, - allowedAmount - ); - - // Call the plugins in the receive context - allowedAmount = _callPluginsPledge( - before, - toPledge, - fromPledge, - toPledge, - allowedAmount - ); - } - -///////////// -// Test functions -///////////// - - /// @notice Basic helper function to return the current time - function _getTime() internal view returns (uint) { - return now; - } -} - - -///File: ./contracts/LiquidPledging.sol - -pragma solidity ^0.4.18; - -/* - Copyright 2017, Jordi Baylina, RJ Ewing - Contributors: Adrià Massanet , Griff Green, - Arthur Lunn - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - - -/// @dev `LiquidPledging` allows for liquid pledging through the use of -/// internal id structures and delegate chaining. All basic operations for -/// handling liquid pledging are supplied as well as plugin features -/// to allow for expanded functionality. -contract LiquidPledging is LiquidPledgingBase { - - function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public { - } - - function addGiverAndDonate(uint64 idReceiver, address token, uint amount) - public - { - addGiverAndDonate(idReceiver, msg.sender, token, amount); - } - - function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount) - public - { - require(donorAddress != 0); - // default to a 3 day (259200 seconds) commitTime - uint64 idGiver = addGiver(donorAddress, "", "", 259200, ILiquidPledgingPlugin(0)); - donate(idGiver, idReceiver, token, amount); - } - - /// @notice This is how value enters the system and how pledges are created; - /// the ether is sent to the vault, an pledge for the Giver is created (or - /// found), the amount of ETH donated in wei is added to the `amount` in - /// the Giver's Pledge, and an LP transfer is done to the idReceiver for - /// the full amount - /// @param idGiver The id of the Giver donating - /// @param idReceiver The Admin receiving the donation; can be any Admin: - /// the Giver themselves, another Giver, a Delegate or a Project - function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount) - public - { - require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer - require(amount > 0); - require(token != 0x0); - - PledgeAdmin storage sender = _findAdmin(idGiver); - require(sender.adminType == PledgeAdminType.Giver); - - // TODO should this be done at the end of this function? - // what re-entrancy issues are there if this is done here? - // if done at the end of the function, will that affect plugins? - require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault` - - uint64 idPledge = _findOrCreatePledge( - idGiver, - new uint64[](0), // Creates empty array for delegationChain - 0, - 0, - 0, - token, - PledgeState.Pledged - ); - - Pledge storage pTo = _findPledge(idPledge); - pTo.amount += amount; - - Transfer(0, idPledge, amount); - - _transfer(idGiver, idPledge, amount, idReceiver); - } - - /// @notice Transfers amounts between pledges for internal accounting - /// @param idSender Id of the Admin that is transferring the amount from - /// Pledge to Pledge; this admin must have permissions to move the value - /// @param idPledge Id of the pledge that's moving the value - /// @param amount Quantity of ETH (in wei) that this pledge is transferring - /// the authority to withdraw from the vault - /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending - /// to a Giver, a Delegate or a Project; a Delegate sending to another - /// Delegate, or a Delegate pre-commiting it to a Project - function transfer( - uint64 idSender, - uint64 idPledge, - uint amount, - uint64 idReceiver - ) public - { - _checkAdminOwner(idSender); - _transfer(idSender, idPledge, amount, idReceiver); - } - - /// @notice Authorizes a payment be made from the `vault` can be used by the - /// Giver to veto a pre-committed donation from a Delegate to an - /// intendedProject - /// @param idPledge Id of the pledge that is to be redeemed into ether - /// @param amount Quantity of ether (in wei) to be authorized - function withdraw(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); // Updates pledge info - - Pledge storage p = _findPledge(idPledge); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paying - ); - - _doTransfer(idPledge, idNewPledge, amount); - - PledgeAdmin storage owner = _findAdmin(p.owner); - vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount); - } - - /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState - /// from Paying to Paid - /// @param idPledge Id of the pledge that is to be withdrawn - /// @param amount Quantity of ether (in wei) to be withdrawn - function confirmPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - uint64 idNewPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Paid - ); - - _doTransfer(idPledge, idNewPledge, amount); - } - - /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState - /// from Paying back to Pledged - /// @param idPledge Id of the pledge that's withdraw is to be canceled - /// @param amount Quantity of ether (in wei) to be canceled - function cancelPayment(uint64 idPledge, uint amount) public onlyVault { - Pledge storage p = _findPledge(idPledge); - - require(p.pledgeState == PledgeState.Paying); - - // When a payment is canceled, never is assigned to a project. - uint64 idOldPledge = _findOrCreatePledge( - p.owner, - p.delegationChain, - 0, - 0, - p.oldPledge, - p.token, - PledgeState.Pledged - ); - - idOldPledge = normalizePledge(idOldPledge); - - _doTransfer(idPledge, idOldPledge, amount); - } - - /// @notice Changes the `project.canceled` flag to `true`; cannot be undone - /// @param idProject Id of the project that is to be canceled - function cancelProject(uint64 idProject) public { - PledgeAdmin storage project = _findAdmin(idProject); - _checkAdminOwner(idProject); - project.canceled = true; - - CancelProject(idProject); - } - - /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that - /// that sent it there in the first place, a Ctrl-z - /// @param idPledge Id of the pledge that is to be canceled - /// @param amount Quantity of ether (in wei) to be transfered to the - /// `oldPledge` - function cancelPledge(uint64 idPledge, uint amount) public { - idPledge = normalizePledge(idPledge); - - Pledge storage p = _findPledge(idPledge); - require(p.oldPledge != 0); - require(p.pledgeState == PledgeState.Pledged); - _checkAdminOwner(p.owner); - - uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge); - _doTransfer(idPledge, oldPledge, amount); - } - - -//////// -// Multi pledge methods -//////// - - // @dev This set of functions makes moving a lot of pledges around much more - // efficient (saves gas) than calling these functions in series - - - /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods - uint constant D64 = 0x10000000000000000; - - /// @notice Transfers multiple amounts within multiple Pledges in an - /// efficient single call - /// @param idSender Id of the Admin that is transferring the amounts from - /// all the Pledges; this admin must have permissions to move the value - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or - /// Project sending to a Giver, a Delegate or a Project; a Delegate sending - /// to another Delegate, or a Delegate pre-commiting it to a Project - function mTransfer( - uint64 idSender, - uint[] pledgesAmounts, - uint64 idReceiver - ) public - { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - transfer(idSender, idPledge, amount, idReceiver); - } - } - - /// @notice Authorizes multiple amounts within multiple Pledges to be - /// withdrawn from the `vault` in an efficient single call - /// @param pledgesAmounts An array of Pledge amounts and the idPledges with - /// which the amounts are associated; these are extrapolated using the D64 - /// bitmask - function mWithdraw(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - withdraw(idPledge, amount); - } - } - - /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mConfirmPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - confirmPayment(idPledge, amount); - } - } - - /// @notice `mCancelPayment` allows for multiple pledges to be canceled - /// efficiently - /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated - /// using the D64 bitmask - function mCancelPayment(uint[] pledgesAmounts) public { - for (uint i = 0; i < pledgesAmounts.length; i++ ) { - uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1)); - uint amount = pledgesAmounts[i] / D64; - - cancelPayment(idPledge, amount); - } - } - - /// @notice `mNormalizePledge` allows for multiple pledges to be - /// normalized efficiently - /// @param pledges An array of pledge IDs - function mNormalizePledge(uint64[] pledges) public { - for (uint i = 0; i < pledges.length; i++ ) { - normalizePledge(pledges[i]); - } - } -} - - -///File: ./contracts/test/TestSimpleProjectPlugin.sol - -pragma solidity ^0.4.11; - - - -// simple liquidPledging plugin contract for testing whitelist -contract TestSimpleProjectPlugin { - - uint64 public idProject; - bool initPending; - - event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - - function TestSimpleProjectPlugin() { - require(msg.sender != tx.origin); // Avoids being created directly by mistake. - initPending = true; - } - - function init( - LiquidPledging liquidPledging, - string name, - string url, - uint64 parentProject - ) { - require(initPending); - idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); - initPending = false; - } - - function beforeTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external returns (uint maxAllowed) { - require(!initPending); - BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - - function afterTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external { - require(!initPending); - AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - -} - - -///File: ./contracts/test/TestSimpleProjectPlugin.sol - -pragma solidity ^0.4.11; - - - -// simple liquidPledging plugin contract for testing whitelist -contract TestSimpleProjectPlugin { - - uint64 public idProject; - bool initPending; - - event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount); - - function TestSimpleProjectPlugin() { - require(msg.sender != tx.origin); // Avoids being created directly by mistake. - initPending = true; - } - - function init( - LiquidPledging liquidPledging, - string name, - string url, - uint64 parentProject - ) { - require(initPending); - idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this)); - initPending = false; - } - - function beforeTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external returns (uint maxAllowed) { - require(!initPending); - BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - - function afterTransfer( - uint64 pledgeAdmin, - uint64 pledgeFrom, - uint64 pledgeTo, - uint64 context, - uint amount - ) external { - require(!initPending); - AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount); - } - -} diff --git a/build/contracts.js b/build/contracts.js deleted file mode 100644 index 28fdeec..0000000 --- a/build/contracts.js +++ /dev/null @@ -1,20 +0,0 @@ -const fs = require("fs"); -const generateClass = require('eth-contract-class').default; - -const contracts = {}; -fs.readdirSync(__dirname).forEach(file => { - if ( /^.*\.sol\.js$/.test(file)) { - const f = require("./" + file); - Object.keys(f).forEach((k) => { - const res = /^(.*)Abi$/.exec(k); - if (res) { - const contractName = res[1]; - if (f[contractName+"ByteCode"].length > 2) { - contracts[contractName] = generateClass(f[contractName+"Abi"], f[contractName+"ByteCode"]); - } - } - }); - } -}); - -module.exports = contracts; diff --git a/build/solcStandardInput.json b/build/solcStandardInput.json deleted file mode 100644 index d8fefa9..0000000 --- a/build/solcStandardInput.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "language": "Solidity", - "sources": { - "./contracts/ILiquidPledgingPlugin.sol": { - "keccak256": "0x5428d88ef6856b67f0d3271065542aa4b7e6d73428b35bf1b434e5f507d3b88b", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/ILiquidPledgingPlugin.sol" - ], - "content": "pragma solidity ^0.4.11;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: Adrià Massanet , RJ Ewing, Griff\n Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n\n/// @dev `ILiquidPledgingPlugin` is the basic interface for any\n/// liquid pledging plugin\ncontract ILiquidPledgingPlugin {\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated before a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function beforeTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount ) public returns (uint maxAllowed);\n\n /// @notice Plugins are used (much like web hooks) to initiate an action\n /// upon any donation, delegation, or transfer; this is an optional feature\n /// and allows for extreme customization of the contract. This function\n /// implements any action that should be initiated after a transfer.\n /// @param pledgeManager The admin or current manager of the pledge\n /// @param pledgeFrom This is the Id from which value will be transfered.\n /// @param pledgeTo This is the Id that value will be transfered to. \n /// @param context The situation that is triggering the plugin:\n /// 0 -> Plugin for the owner transferring pledge to another party\n /// 1 -> Plugin for the first delegate transferring pledge to another party\n /// 2 -> Plugin for the second delegate transferring pledge to another party\n /// ...\n /// 255 -> Plugin for the intendedProject transferring pledge to another party\n ///\n /// 256 -> Plugin for the owner receiving pledge to another party\n /// 257 -> Plugin for the first delegate receiving pledge to another party\n /// 258 -> Plugin for the second delegate receiving pledge to another party\n /// ...\n /// 511 -> Plugin for the intendedProject receiving pledge to another party\n /// @param amount The amount of value that will be transfered.\n function afterTransfer(\n uint64 pledgeManager,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n address token,\n uint amount\n ) public;\n}\n" - }, - "./contracts/LiquidPledgingACLHelpers.sol": { - "keccak256": "0xb675a7a788bf656d4c3c78f3b4cf6645afb432939d1a4c38d70e01d068b0ce62", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingACLHelpers.sol" - ], - "content": "pragma solidity ^0.4.18;\n\ncontract LiquidPledgingACLHelpers {\n function arr(uint64 a, uint64 b, address c, uint d, address e) internal pure returns(uint[] r) {\n r = new uint[](4);\n r[0] = uint(a);\n r[1] = uint(b);\n r[2] = uint(c);\n r[3] = d;\n r[4] = uint(e);\n }\n\n function arr(bool a) internal pure returns (uint[] r) {\n r = new uint[](1);\n uint _a;\n assembly {\n _a := a // forced casting\n }\n r[0] = _a;\n }\n}" - }, - "./contracts/LiquidPledgingPlugins.sol": { - "keccak256": "0xb3566dfb5a8a1a0a57952501f6ddc39974fff2ee4c2861b20342a95b442cc776", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingPlugins.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"./LiquidPledgingStorage.sol\";\nimport \"./LiquidPledgingACLHelpers.sol\";\n\ncontract LiquidPledgingPlugins is AragonApp, LiquidPledgingStorage, LiquidPledgingACLHelpers {\n\n bytes32 constant public PLUGIN_MANAGER_ROLE = keccak256(\"PLUGIN_MANAGER_ROLE\");\n\n function addValidPluginInstance(address addr) auth(PLUGIN_MANAGER_ROLE) external {\n pluginInstanceWhitelist[addr] = true;\n }\n\n function addValidPluginContract(bytes32 contractHash) auth(PLUGIN_MANAGER_ROLE) public {\n pluginContractWhitelist[contractHash] = true;\n }\n\n function addValidPluginContracts(bytes32[] contractHashes) external auth(PLUGIN_MANAGER_ROLE) {\n for (uint8 i = 0; i < contractHashes.length; i++) {\n addValidPluginContract(contractHashes[i]);\n }\n }\n\n function removeValidPluginContract(bytes32 contractHash) external authP(PLUGIN_MANAGER_ROLE, arr(contractHash)) {\n pluginContractWhitelist[contractHash] = false;\n }\n\n function removeValidPluginInstance(address addr) external authP(PLUGIN_MANAGER_ROLE, arr(addr)) {\n pluginInstanceWhitelist[addr] = false;\n }\n\n function useWhitelist(bool useWhitelist) external auth(PLUGIN_MANAGER_ROLE) {\n whitelistDisabled = !useWhitelist;\n }\n\n function isValidPlugin(address addr) public view returns(bool) {\n if (whitelistDisabled || addr == 0x0) {\n return true;\n }\n\n // first check pluginInstances\n if (pluginInstanceWhitelist[addr]) {\n return true;\n }\n\n // if the addr isn't a valid instance, check the contract code\n bytes32 contractHash = getCodeHash(addr);\n\n return pluginContractWhitelist[contractHash];\n }\n\n function getCodeHash(address addr) public view returns(bytes32) {\n bytes memory o_code;\n assembly {\n // retrieve the size of the code, this needs assembly\n let size := extcodesize(addr)\n // allocate output byte array - this could also be done without assembly\n // by using o_code = new bytes(size)\n o_code := mload(0x40)\n mstore(o_code, size) // store length in memory\n // actually retrieve the code, this needs assembly\n extcodecopy(addr, add(o_code, 0x20), 0, size)\n }\n return keccak256(o_code);\n }\n}" - }, - "@aragon/os/contracts/acl/IACL.sol": { - "keccak256": "0xa120fc32d8d2c5096d605b0fe012d5b1e4a62118952a25a18bac5210f4fceede", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/acl/IACL.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n\ninterface IACL {\n function initialize(address permissionsCreator) public;\n function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);\n}\n" - }, - "@aragon/os/contracts/kernel/IKernel.sol": { - "keccak256": "0xc4bd88d7355351f68614906f04d7a67b4fcd81b28112f75df090b7eb8b93c881", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/IKernel.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"../acl/IACL.sol\";\n\ninterface IKernel {\n event SetApp(bytes32 indexed namespace, bytes32 indexed name, bytes32 indexed id, address app);\n\n function acl() public view returns (IACL);\n function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);\n\n function setApp(bytes32 namespace, bytes32 name, address app) public returns (bytes32 id);\n function getApp(bytes32 id) public view returns (address);\n}" - }, - "@aragon/os/contracts/apps/AppStorage.sol": { - "keccak256": "0x8b9205a3fdf9d94fb1461d2c2d32335803122aa75d3fa8cf0b982796fd040c25", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppStorage.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"../kernel/IKernel.sol\";\n\n\ncontract AppStorage {\n IKernel public kernel;\n bytes32 public appId;\n address internal pinnedCode; // used by Proxy Pinned\n uint256 internal initializationBlock; // used by Initializable\n uint256[95] private storageOffset; // forces App storage to start at after 100 slots\n uint256 private offset;\n}\n" - }, - "@aragon/os/contracts/common/Initializable.sol": { - "keccak256": "0x07ef04e0cf56217c5e103a760dd577a7fffa06ca166dc15af35b3895e58880e9", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/common/Initializable.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"../apps/AppStorage.sol\";\n\n\ncontract Initializable is AppStorage {\n modifier onlyInit {\n require(initializationBlock == 0);\n _;\n }\n\n /**\n * @return Block number in which the contract was initialized\n */\n function getInitializationBlock() public view returns (uint256) {\n return initializationBlock;\n }\n\n /**\n * @dev Function to be called by top level contract after initialization has finished.\n */\n function initialized() internal onlyInit {\n initializationBlock = getBlockNumber();\n }\n\n /**\n * @dev Returns the current block number.\n * Using a function rather than `block.number` allows us to easily mock the block number in\n * tests.\n */\n function getBlockNumber() internal view returns (uint256) {\n return block.number;\n }\n}\n" - }, - "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { - "keccak256": "0x6a4beed810085f11cda9d50c3547ac4cc2100d9dc18ab4982ff11dd483410012", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n\ninterface IEVMScriptExecutor {\n function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes);\n}\n" - }, - "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { - "keccak256": "0xa0cf92b96ee915266c74d42f3479ee809754264cc783fe9635f74d3795c7b2e1", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol" - ], - "content": "pragma solidity 0.4.18;\n\n\ncontract EVMScriptRegistryConstants {\n bytes32 constant public EVMSCRIPT_REGISTRY_APP_ID = keccak256(\"evmreg.aragonpm.eth\");\n bytes32 constant public EVMSCRIPT_REGISTRY_APP = keccak256(keccak256(\"app\"), EVMSCRIPT_REGISTRY_APP_ID);\n}\n\n\ninterface IEVMScriptRegistry {\n function addScriptExecutor(address executor) external returns (uint id);\n function disableScriptExecutor(uint256 executorId) external;\n\n function getScriptExecutor(bytes script) public view returns (address);\n}" - }, - "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { - "keccak256": "0x21a99d2fc9de2244829954ea1c21057f25f74a23f18ac7f7402420922e287517", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/ScriptHelpers.sol" - ], - "content": "pragma solidity 0.4.18;\n\n\nlibrary ScriptHelpers {\n // To test with JS and compare with actual encoder. Maintaining for reference.\n // t = function() { return IEVMScriptExecutor.at('0x4bcdd59d6c77774ee7317fc1095f69ec84421e49').contract.execScript.getData(...[].slice.call(arguments)).slice(10).match(/.{1,64}/g) }\n // run = function() { return ScriptHelpers.new().then(sh => { sh.abiEncode.call(...[].slice.call(arguments)).then(a => console.log(a.slice(2).match(/.{1,64}/g)) ) }) }\n // This is truly not beautiful but lets no daydream to the day solidity gets reflection features\n\n function abiEncode(bytes _a, bytes _b, address[] _c) public pure returns (bytes d) {\n return encode(_a, _b, _c);\n }\n\n function encode(bytes memory _a, bytes memory _b, address[] memory _c) internal pure returns (bytes memory d) {\n // A is positioned after the 3 position words\n uint256 aPosition = 0x60;\n uint256 bPosition = aPosition + 32 * abiLength(_a);\n uint256 cPosition = bPosition + 32 * abiLength(_b);\n uint256 length = cPosition + 32 * abiLength(_c);\n\n d = new bytes(length);\n assembly {\n // Store positions\n mstore(add(d, 0x20), aPosition)\n mstore(add(d, 0x40), bPosition)\n mstore(add(d, 0x60), cPosition)\n }\n\n // Copy memory to correct position\n copy(d, getPtr(_a), aPosition, _a.length);\n copy(d, getPtr(_b), bPosition, _b.length);\n copy(d, getPtr(_c), cPosition, _c.length * 32); // 1 word per address\n }\n\n function abiLength(bytes memory _a) internal pure returns (uint256) {\n // 1 for length +\n // memory words + 1 if not divisible for 32 to offset word\n return 1 + (_a.length / 32) + (_a.length % 32 > 0 ? 1 : 0);\n }\n\n function abiLength(address[] _a) internal pure returns (uint256) {\n // 1 for length + 1 per item\n return 1 + _a.length;\n }\n\n function copy(bytes _d, uint256 _src, uint256 _pos, uint256 _length) internal pure {\n uint dest;\n assembly {\n dest := add(add(_d, 0x20), _pos)\n }\n memcpy(dest, _src, _length + 32);\n }\n\n function getPtr(bytes memory _x) internal pure returns (uint256 ptr) {\n assembly {\n ptr := _x\n }\n }\n\n function getPtr(address[] memory _x) internal pure returns (uint256 ptr) {\n assembly {\n ptr := _x\n }\n }\n\n function getSpecId(bytes _script) internal pure returns (uint32) {\n return uint32At(_script, 0);\n }\n\n function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) {\n assembly {\n result := mload(add(_data, add(0x20, _location)))\n }\n }\n\n function addressAt(bytes _data, uint256 _location) internal pure returns (address result) {\n uint256 word = uint256At(_data, _location);\n\n assembly {\n result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000),\n 0x1000000000000000000000000)\n }\n }\n\n function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) {\n uint256 word = uint256At(_data, _location);\n\n assembly {\n result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000),\n 0x100000000000000000000000000000000000000000000000000000000)\n }\n }\n\n function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) {\n assembly {\n result := add(_data, add(0x20, _location))\n }\n }\n\n function toBytes(bytes4 _sig) internal pure returns (bytes) {\n bytes memory payload = new bytes(4);\n payload[0] = bytes1(_sig);\n payload[1] = bytes1(_sig << 8);\n payload[2] = bytes1(_sig << 16);\n payload[3] = bytes1(_sig << 24);\n return payload;\n }\n\n function memcpy(uint _dest, uint _src, uint _len) public pure {\n uint256 src = _src;\n uint256 dest = _dest;\n uint256 len = _len;\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n uint mask = 256 ** (32 - len) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n}" - }, - "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { - "keccak256": "0xf226f2c5c0a930340d49a5f79ac49a18dc0f88632acdef32c4eb698d5bb8a77e", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/EVMScriptRunner.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"../apps/AppStorage.sol\";\nimport \"./IEVMScriptExecutor.sol\";\nimport \"./IEVMScriptRegistry.sol\";\n\nimport \"./ScriptHelpers.sol\";\n\n\ncontract EVMScriptRunner is AppStorage, EVMScriptRegistryConstants {\n using ScriptHelpers for bytes;\n\n function runScript(bytes _script, bytes _input, address[] _blacklist) protectState internal returns (bytes output) {\n // TODO: Too much data flying around, maybe extracting spec id here is cheaper\n address executorAddr = getExecutor(_script);\n require(executorAddr != address(0));\n\n bytes memory calldataArgs = _script.encode(_input, _blacklist);\n bytes4 sig = IEVMScriptExecutor(0).execScript.selector;\n\n require(executorAddr.delegatecall(sig, calldataArgs));\n\n return returnedDataDecoded();\n }\n\n function getExecutor(bytes _script) public view returns (IEVMScriptExecutor) {\n return IEVMScriptExecutor(getExecutorRegistry().getScriptExecutor(_script));\n }\n\n // TODO: Internal\n function getExecutorRegistry() internal view returns (IEVMScriptRegistry) {\n address registryAddr = kernel.getApp(EVMSCRIPT_REGISTRY_APP);\n return IEVMScriptRegistry(registryAddr);\n }\n\n /**\n * @dev copies and returns last's call data. Needs to ABI decode first\n */\n function returnedDataDecoded() internal view returns (bytes ret) {\n assembly {\n let size := returndatasize\n switch size\n case 0 {}\n default {\n ret := mload(0x40) // free mem ptr get\n mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set\n returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data\n }\n }\n return ret;\n }\n\n modifier protectState {\n address preKernel = kernel;\n bytes32 preAppId = appId;\n _; // exec\n require(kernel == preKernel);\n require(appId == preAppId);\n }\n}" - }, - "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { - "keccak256": "0x92c85fe20e03c5fde11c3006b2acd7c24021d53356bd14070522d71912e5419b", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/acl/ACLSyntaxSugar.sol" - ], - "content": "pragma solidity 0.4.18;\n\n\ncontract ACLSyntaxSugar {\n function arr() internal pure returns (uint256[] r) {}\n\n function arr(bytes32 _a) internal pure returns (uint256[] r) {\n return arr(uint256(_a));\n }\n\n function arr(bytes32 _a, bytes32 _b) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b));\n }\n\n function arr(address _a) internal pure returns (uint256[] r) {\n return arr(uint256(_a));\n }\n\n function arr(address _a, address _b) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b));\n }\n\n function arr(address _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) {\n return arr(uint256(_a), _b, _c);\n }\n\n function arr(address _a, uint256 _b) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b));\n }\n\n function arr(address _a, address _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b), _c, _d, _e);\n }\n\n function arr(address _a, address _b, address _c) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b), uint256(_c));\n }\n\n function arr(address _a, address _b, uint256 _c) internal pure returns (uint256[] r) {\n return arr(uint256(_a), uint256(_b), uint256(_c));\n }\n\n function arr(uint256 _a) internal pure returns (uint256[] r) {\n r = new uint256[](1);\n r[0] = _a;\n }\n\n function arr(uint256 _a, uint256 _b) internal pure returns (uint256[] r) {\n r = new uint256[](2);\n r[0] = _a;\n r[1] = _b;\n }\n\n function arr(uint256 _a, uint256 _b, uint256 _c) internal pure returns (uint256[] r) {\n r = new uint256[](3);\n r[0] = _a;\n r[1] = _b;\n r[2] = _c;\n }\n\n function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d) internal pure returns (uint256[] r) {\n r = new uint256[](4);\n r[0] = _a;\n r[1] = _b;\n r[2] = _c;\n r[3] = _d;\n }\n\n function arr(uint256 _a, uint256 _b, uint256 _c, uint256 _d, uint256 _e) internal pure returns (uint256[] r) {\n r = new uint256[](5);\n r[0] = _a;\n r[1] = _b;\n r[2] = _c;\n r[3] = _d;\n r[4] = _e;\n }\n}\n\n\ncontract ACLHelpers {\n function decodeParamOp(uint256 _x) internal pure returns (uint8 b) {\n return uint8(_x >> (8 * 30));\n }\n\n function decodeParamId(uint256 _x) internal pure returns (uint8 b) {\n return uint8(_x >> (8 * 31));\n }\n\n function decodeParamsList(uint256 _x) internal pure returns (uint32 a, uint32 b, uint32 c) {\n a = uint32(_x);\n b = uint32(_x >> (8 * 4));\n c = uint32(_x >> (8 * 8));\n }\n}\n" - }, - "@aragon/os/contracts/apps/AragonApp.sol": { - "keccak256": "0x7b5ed0ab203aea14886f337bc8b73ec49177415d43b3251d917d51a6d138d8f1", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AragonApp.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"./AppStorage.sol\";\nimport \"../common/Initializable.sol\";\nimport \"../evmscript/EVMScriptRunner.sol\";\nimport \"../acl/ACLSyntaxSugar.sol\";\n\n\ncontract AragonApp is AppStorage, Initializable, ACLSyntaxSugar, EVMScriptRunner {\n modifier auth(bytes32 _role) {\n require(canPerform(msg.sender, _role, new uint256[](0)));\n _;\n }\n\n modifier authP(bytes32 _role, uint256[] params) {\n require(canPerform(msg.sender, _role, params));\n _;\n }\n\n function canPerform(address _sender, bytes32 _role, uint256[] params) public view returns (bool) {\n bytes memory how; // no need to init memory as it is never used\n if (params.length > 0) {\n uint256 byteLength = params.length * 32;\n assembly {\n how := params // forced casting\n mstore(how, byteLength)\n }\n }\n return address(kernel) == 0 || kernel.hasPermission(_sender, address(this), _role, how);\n }\n}\n" - }, - "./contracts/LiquidPledgingStorage.sol": { - "keccak256": "0x81ef504efbc50c58acec1b85784d9be3cb0bd761b3e9d013b19aa5f0d5169a08", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingStorage.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"./ILiquidPledgingPlugin.sol\";\n\n/// @dev This is an interface for `LPVault` which serves as a secure storage for\n/// the ETH that backs the Pledges, only after `LiquidPledging` authorizes\n/// payments can Pledges be converted for ETH\ninterface ILPVault {\n function authorizePayment(bytes32 _ref, address _dest, address _token, uint _amount) public;\n}\n\n/// This contract contains all state variables used in LiquidPledging contracts\n/// This is done to have everything in 1 location, b/c state variable layout\n/// is MUST have be the same when performing an upgrade.\ncontract LiquidPledgingStorage {\n enum PledgeAdminType { Giver, Delegate, Project }\n enum PledgeState { Pledged, Paying, Paid }\n\n /// @dev This struct defines the details of a `PledgeAdmin` which are \n /// commonly referenced by their index in the `admins` array\n /// and can own pledges and act as delegates\n struct PledgeAdmin { \n PledgeAdminType adminType; // Giver, Delegate or Project\n address addr; // Account or contract address for admin\n uint64 commitTime; // In seconds, used for time Givers' & Delegates' have to veto\n uint64 parentProject; // Only for projects\n bool canceled; //Always false except for canceled projects\n\n /// @dev if the plugin is 0x0 then nothing happens, if its an address\n // than that smart contract is called when appropriate\n ILiquidPledgingPlugin plugin; \n string name;\n string url; // Can be IPFS hash\n }\n\n struct Pledge {\n uint amount;\n uint64[] delegationChain; // List of delegates in order of authority\n uint64 owner; // PledgeAdmin\n uint64 intendedProject; // Used when delegates are sending to projects\n uint64 commitTime; // When the intendedProject will become the owner\n uint64 oldPledge; // Points to the id that this Pledge was derived from\n address token;\n PledgeState pledgeState; // Pledged, Paying, Paid\n }\n\n PledgeAdmin[] admins; //The list of pledgeAdmins 0 means there is no admin\n Pledge[] pledges;\n /// @dev this mapping allows you to search for a specific pledge's \n /// index number by the hash of that pledge\n mapping (bytes32 => uint64) hPledge2idx;\n\n // this whitelist is for non-proxied plugins\n mapping (bytes32 => bool) pluginContractWhitelist;\n // this whitelist is for proxied plugins\n mapping (address => bool) pluginInstanceWhitelist;\n bool public whitelistDisabled = false;\n\n ILPVault public vault;\n\n // reserve 50 slots for future upgrades. I'm not sure if this is necessary \n // but b/c of multiple inheritance used in lp, better safe then sorry.\n // especially since it is free\n uint[50] private storageOffset;\n}" - }, - "./contracts/LiquidPledgingMock.sol": { - "keccak256": "0xdda9b91ee9c3fb830293f8e955c39f277eed9a6fa92f1e712dc8158811483dbd", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingMock.sol" - ], - "content": "pragma solidity ^0.4.11;\n/*\n Copyright 2017, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledging.sol\";\n// hack so that solcpiler will generate a contracts.Kernel object\nimport \"@aragon/os/contracts/kernel/Kernel.sol\";\n\n/// @dev `LiquidPledgingMock` allows for mocking up\n/// a `LiquidPledging` contract with the added ability\n/// to manipulate the block time for testing purposes.\ncontract LiquidPledgingMock is LiquidPledging {\n\n uint public mock_time;\n\n function LiquidPledgingMock(address _escapeHatchDestination) LiquidPledging(_escapeHatchDestination) public {\n }\n\n /// @dev `LiquidPledgingMock` creates a standard `LiquidPledging`\n /// instance and sets the mocked time to the current blocktime.\n function initialize(address _vault, address _escapeHatchDestination) onlyInit public {\n super.initialize(_vault, _escapeHatchDestination);\n mock_time = now;\n }\n\n /// @dev `getTime` is a basic getter function for\n /// the mock_time parameter\n function _getTime() internal view returns (uint) {\n return mock_time;\n }\n\n /// @dev `setMockedTime` is a basic setter function for\n /// the mock_time parameter\n /// @param _t This is the value to which the mocked time\n /// will be set.\n function setMockedTime(uint _t) public {\n mock_time = _t;\n }\n}\n" - }, - "./contracts/PledgeAdmins.sol": { - "keccak256": "0xfa7101ced06daaf446ff10e222aafb68a0d52dca99f57d6c8d7aab959e6a5104", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/PledgeAdmins.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\nimport \"./LiquidPledgingPlugins.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\ncontract PledgeAdmins is AragonApp, LiquidPledgingPlugins {\n\n // Limits inserted to prevent large loops that could prevent canceling\n uint constant MAX_SUBPROJECT_LEVEL = 20;\n uint constant MAX_INTERPROJECT_LEVEL = 20;\n\n // Events\n event GiverAdded(uint64 indexed idGiver, string url);\n event GiverUpdated(uint64 indexed idGiver, string url);\n event DelegateAdded(uint64 indexed idDelegate, string url);\n event DelegateUpdated(uint64 indexed idDelegate, string url);\n event ProjectAdded(uint64 indexed idProject, string url);\n event ProjectUpdated(uint64 indexed idProject, string url);\n\n////////////////////\n// Public functions\n////////////////////\n\n /// @notice Creates a Giver Admin with the `msg.sender` as the Admin address\n /// @param name The name used to identify the Giver\n /// @param url The link to the Giver's profile often an IPFS hash\n /// @param commitTime The length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n /// @param plugin This is Giver's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idGiver The id number used to reference this Admin\n function addGiver(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idGiver)\n {\n return addGiver(\n msg.sender,\n name,\n url,\n commitTime,\n plugin\n );\n }\n\n // TODO: is there an issue w/ allowing anyone to create a giver on behalf of another addy?\n function addGiver(\n address addr,\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) public returns (uint64 idGiver)\n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idGiver = uint64(admins.length);\n\n // Save the fields\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Giver,\n addr,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n GiverAdded(idGiver, url);\n }\n\n /// @notice Updates a Giver's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Giver\n /// @param idGiver This is the Admin id number used to specify the Giver\n /// @param newAddr The new address that represents this Giver\n /// @param newName The new name used to identify the Giver\n /// @param newUrl The new link to the Giver's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n function updateGiver(\n uint64 idGiver,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage giver = _findAdmin(idGiver);\n require(msg.sender == giver.addr);\n require(giver.adminType == PledgeAdminType.Giver); // Must be a Giver\n giver.addr = newAddr;\n giver.name = newName;\n giver.url = newUrl;\n giver.commitTime = newCommitTime;\n\n GiverUpdated(idGiver, newUrl);\n }\n\n /// @notice Creates a Delegate Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Delegate\n /// @param url The link to the Delegate's profile often an IPFS hash\n /// @param commitTime Sets the length of time in seconds that this delegate\n /// can be vetoed. Whenever this delegate is in a delegate chain the time\n /// allowed to veto any event must be greater than or equal to this time.\n /// @param plugin This is Delegate's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idxDelegate The id number used to reference this Delegate within\n /// the PLEDGE_ADMIN array\n function addDelegate(\n string name,\n string url,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idDelegate) \n {\n require(isValidPlugin(plugin)); // Plugin check\n\n idDelegate = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Delegate,\n msg.sender,\n commitTime,\n 0,\n false,\n plugin,\n name,\n url)\n );\n\n DelegateAdded(idDelegate, url);\n }\n\n /// @notice Updates a Delegate's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin, and it must be called\n /// by the current address of the Delegate\n /// @param idDelegate The Admin id number used to specify the Delegate\n /// @param newAddr The new address that represents this Delegate\n /// @param newName The new name used to identify the Delegate\n /// @param newUrl The new link to the Delegate's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds that this\n /// delegate can be vetoed. Whenever this delegate is in a delegate chain\n /// the time allowed to veto any event must be greater than or equal to\n /// this time.\n function updateDelegate(\n uint64 idDelegate,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage delegate = _findAdmin(idDelegate);\n require(msg.sender == delegate.addr);\n require(delegate.adminType == PledgeAdminType.Delegate);\n delegate.addr = newAddr;\n delegate.name = newName;\n delegate.url = newUrl;\n delegate.commitTime = newCommitTime;\n\n DelegateUpdated(idDelegate, newUrl);\n }\n\n /// @notice Creates a Project Admin with the `msg.sender` as the Admin addr\n /// @param name The name used to identify the Project\n /// @param url The link to the Project's profile often an IPFS hash\n /// @param projectAdmin The address for the trusted project manager\n /// @param parentProject The Admin id number for the parent project or 0 if\n /// there is no parentProject\n /// @param commitTime Sets the length of time in seconds the Project has to\n /// veto when the Project delegates to another Delegate and they pledge\n /// those funds to a project\n /// @param plugin This is Project's liquid pledge plugin allowing for\n /// extended functionality\n /// @return idProject The id number used to reference this Admin\n function addProject(\n string name,\n string url,\n address projectAdmin,\n uint64 parentProject,\n uint64 commitTime,\n ILiquidPledgingPlugin plugin\n ) external returns (uint64 idProject) \n {\n require(isValidPlugin(plugin));\n\n if (parentProject != 0) {\n PledgeAdmin storage a = _findAdmin(parentProject);\n // getProjectLevel will check that parentProject has a `Project` adminType\n require(_getProjectLevel(a) < MAX_SUBPROJECT_LEVEL);\n }\n\n idProject = uint64(admins.length);\n\n admins.push(\n PledgeAdmin(\n PledgeAdminType.Project,\n projectAdmin,\n commitTime,\n parentProject,\n false,\n plugin,\n name,\n url)\n );\n\n ProjectAdded(idProject, url);\n }\n\n /// @notice Updates a Project's info to change the address, name, url, or\n /// commitTime, it cannot be used to change a plugin or a parentProject,\n /// and it must be called by the current address of the Project\n /// @param idProject The Admin id number used to specify the Project\n /// @param newAddr The new address that represents this Project\n /// @param newName The new name used to identify the Project\n /// @param newUrl The new link to the Project's profile often an IPFS hash\n /// @param newCommitTime Sets the length of time in seconds the Project has\n /// to veto when the Project delegates to a Delegate and they pledge those\n /// funds to a project\n function updateProject(\n uint64 idProject,\n address newAddr,\n string newName,\n string newUrl,\n uint64 newCommitTime\n ) external \n {\n PledgeAdmin storage project = _findAdmin(idProject);\n\n require(msg.sender == project.addr);\n require(project.adminType == PledgeAdminType.Project);\n\n project.addr = newAddr;\n project.name = newName;\n project.url = newUrl;\n project.commitTime = newCommitTime;\n\n ProjectUpdated(idProject, newUrl);\n }\n\n/////////////////////////////\n// Public constant functions\n/////////////////////////////\n\n /// @notice A constant getter used to check how many total Admins exist\n /// @return The total number of admins (Givers, Delegates and Projects) .\n function numberOfPledgeAdmins() external view returns(uint) {\n return admins.length - 1;\n }\n\n /// @notice A constant getter to check the details of a specified Admin\n /// @return addr Account or contract address for admin\n /// @return name Name of the pledgeAdmin\n /// @return url The link to the Project's profile often an IPFS hash\n /// @return commitTime The length of time in seconds the Admin has to veto\n /// when the Admin delegates to a Delegate and that Delegate pledges those\n /// funds to a project\n /// @return parentProject The Admin id number for the parent project or 0\n /// if there is no parentProject\n /// @return canceled 0 for Delegates & Givers, true if a Project has been\n /// canceled\n /// @return plugin This is Project's liquidPledging plugin allowing for\n /// extended functionality\n function getPledgeAdmin(uint64 idAdmin) external view returns (\n PledgeAdminType adminType,\n address addr,\n string name,\n string url,\n uint64 commitTime,\n uint64 parentProject,\n bool canceled,\n address plugin\n ) {\n PledgeAdmin storage a = _findAdmin(idAdmin);\n adminType = a.adminType;\n addr = a.addr;\n name = a.name;\n url = a.url;\n commitTime = a.commitTime;\n parentProject = a.parentProject;\n canceled = a.canceled;\n plugin = address(a.plugin);\n }\n\n /// @notice A getter to find if a specified Project has been canceled\n /// @param projectId The Admin id number used to specify the Project\n /// @return True if the Project has been canceled\n function isProjectCanceled(uint64 projectId)\n public view returns (bool)\n {\n PledgeAdmin storage a = _findAdmin(projectId);\n\n if (a.adminType == PledgeAdminType.Giver) {\n return false;\n }\n\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.canceled) {\n return true;\n }\n if (a.parentProject == 0) {\n return false;\n }\n\n return isProjectCanceled(a.parentProject);\n }\n\n///////////////////\n// Internal methods\n///////////////////\n\n /// @notice A getter to look up a Admin's details\n /// @param idAdmin The id for the Admin to lookup\n /// @return The PledgeAdmin struct for the specified Admin\n function _findAdmin(uint64 idAdmin) internal view returns (PledgeAdmin storage) {\n require(idAdmin < admins.length);\n return admins[idAdmin];\n }\n\n /// @notice Find the level of authority a specific Project has\n /// using a recursive loop\n /// @param a The project admin being queried\n /// @return The level of authority a specific Project has\n function _getProjectLevel(PledgeAdmin a) internal view returns(uint64) {\n assert(a.adminType == PledgeAdminType.Project);\n\n if (a.parentProject == 0) {\n return(1);\n }\n\n PledgeAdmin storage parent = _findAdmin(a.parentProject);\n return _getProjectLevel(parent) + 1;\n }\n}" - }, - "./contracts/Pledges.sol": { - "keccak256": "0x9c7a60dff92f94d518d0c4a40d5434cd23680f79fd364ae855575ae4ca683797", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/Pledges.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"./LiquidPledgingStorage.sol\";\n\ncontract Pledges is AragonApp, LiquidPledgingStorage {\n\n // Limits inserted to prevent large loops that could prevent canceling\n uint constant MAX_DELEGATES = 10;\n\n // a constant for when a delegate is requested that is not in the system\n uint64 constant NOTFOUND = 0xFFFFFFFFFFFFFFFF;\n\n/////////////////////////////\n// Public constant functions\n////////////////////////////\n\n /// @notice A constant getter that returns the total number of pledges\n /// @return The total number of Pledges in the system\n function numberOfPledges() external view returns (uint) {\n return pledges.length - 1;\n }\n\n /// @notice A getter that returns the details of the specified pledge\n /// @param idPledge the id number of the pledge being queried\n /// @return the amount, owner, the number of delegates (but not the actual\n /// delegates, the intendedProject (if any), the current commit time and\n /// the previous pledge this pledge was derived from\n function getPledge(uint64 idPledge) external view returns(\n uint amount,\n uint64 owner,\n uint64 nDelegates,\n uint64 intendedProject,\n uint64 commitTime,\n uint64 oldPledge,\n address token,\n PledgeState pledgeState\n ) {\n Pledge memory p = _findPledge(idPledge);\n amount = p.amount;\n owner = p.owner;\n nDelegates = uint64(p.delegationChain.length);\n intendedProject = p.intendedProject;\n commitTime = p.commitTime;\n oldPledge = p.oldPledge;\n token = p.token;\n pledgeState = p.pledgeState;\n }\n\n\n////////////////////\n// Internal methods\n////////////////////\n\n /// @notice This creates a Pledge with an initial amount of 0 if one is not\n /// created already; otherwise it finds the pledge with the specified\n /// attributes; all pledges technically exist, if the pledge hasn't been\n /// created in this system yet it simply isn't in the hash array\n /// hPledge2idx[] yet\n /// @param owner The owner of the pledge being looked up\n /// @param delegationChain The list of delegates in order of authority\n /// @param intendedProject The project this pledge will Fund after the\n /// commitTime has passed\n /// @param commitTime The length of time in seconds the Giver has to\n /// veto when the Giver's delegates Pledge funds to a project\n /// @param oldPledge This value is used to store the pledge the current\n /// pledge was came from, and in the case a Project is canceled, the Pledge\n /// will revert back to it's previous state\n /// @param state The pledge state: Pledged, Paying, or state\n /// @return The hPledge2idx index number\n function _findOrCreatePledge(\n uint64 owner,\n uint64[] delegationChain,\n uint64 intendedProject,\n uint64 commitTime,\n uint64 oldPledge,\n address token,\n PledgeState state\n ) internal returns (uint64)\n {\n bytes32 hPledge = keccak256(delegationChain, owner, intendedProject, commitTime, oldPledge, token, state);\n uint64 id = hPledge2idx[hPledge];\n if (id > 0) {\n return id;\n }\n\n id = uint64(pledges.length);\n hPledge2idx[hPledge] = id;\n pledges.push(\n Pledge(\n 0,\n delegationChain,\n owner,\n intendedProject,\n commitTime,\n oldPledge,\n token,\n state\n )\n );\n return id;\n }\n\n /// @param idPledge the id of the pledge to load from storage\n /// @return The Pledge\n function _findPledge(uint64 idPledge) internal view returns(Pledge storage) {\n require(idPledge < pledges.length);\n return pledges[idPledge];\n }\n\n /// @notice A getter that searches the delegationChain for the level of\n /// authority a specific delegate has within a Pledge\n /// @param p The Pledge that will be searched\n /// @param idDelegate The specified delegate that's searched for\n /// @return If the delegate chain contains the delegate with the\n /// `admins` array index `idDelegate` this returns that delegates\n /// corresponding index in the delegationChain. Otherwise it returns\n /// the NOTFOUND constant\n function _getDelegateIdx(Pledge p, uint64 idDelegate) internal pure returns(uint64) {\n for (uint i = 0; i < p.delegationChain.length; i++) {\n if (p.delegationChain[i] == idDelegate) {\n return uint64(i);\n }\n }\n return NOTFOUND;\n }\n\n /// @notice A getter to find how many old \"parent\" pledges a specific Pledge\n /// had using a self-referential loop\n /// @param p The Pledge being queried\n /// @return The number of old \"parent\" pledges a specific Pledge had\n function _getPledgeLevel(Pledge p) internal view returns(uint) {\n if (p.oldPledge == 0) {\n return 0;\n }\n Pledge storage oldP = _findPledge(p.oldPledge);\n return _getPledgeLevel(oldP) + 1; // a loop lookup\n }\n}\n" - }, - "giveth-common-contracts/contracts/ERC20.sol": { - "keccak256": "0xcadd92ef9521600699043b047147e61718c62af07911731d77890dd47fc1a512", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/giveth-common-contracts/contracts/ERC20.sol" - ], - "content": "pragma solidity ^0.4.15;\n\n\n/**\n * @title ERC20\n * @dev A standard interface for tokens.\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n */\ncontract ERC20 {\n \n /// @dev Returns the total token supply\n function totalSupply() public constant returns (uint256 supply);\n\n /// @dev Returns the account balance of the account with address _owner\n function balanceOf(address _owner) public constant returns (uint256 balance);\n\n /// @dev Transfers _value number of tokens to address _to\n function transfer(address _to, uint256 _value) public returns (bool success);\n\n /// @dev Transfers _value number of tokens from address _from to address _to\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);\n\n /// @dev Allows _spender to withdraw from the msg.sender's account up to the _value amount\n function approve(address _spender, uint256 _value) public returns (bool success);\n\n /// @dev Returns the amount which _spender is still allowed to withdraw from _owner\n function allowance(address _owner, address _spender) public constant returns (uint256 remaining);\n\n event Transfer(address indexed _from, address indexed _to, uint256 _value);\n event Approval(address indexed _owner, address indexed _spender, uint256 _value);\n\n}\n" - }, - "./contracts/EscapableApp.sol": { - "keccak256": "0x03817336f5fa2d4211b9b5bb0beb6e5b2ad69061eb2b26e4e2d0bc04f486917a", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/EscapableApp.sol" - ], - "content": "pragma solidity ^0.4.18;\n/*\n Copyright 2016, Jordi Baylina\n Contributor: Adrià Massanet \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n// import \"./Owned.sol\";\nimport \"giveth-common-contracts/contracts/ERC20.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\n\n\n/// @dev `EscapableApp` is a base level contract; it creates an escape hatch\n/// function that can be called in an\n/// emergency that will allow designated addresses to send any ether or tokens\n/// held in the contract to an `escapeHatchDestination` as long as they were\n/// not blacklisted\ncontract EscapableApp is AragonApp {\n // warning whoever has this role can move all funds to the `escapeHatchDestination`\n bytes32 constant public ESCAPE_HATCH_CALLER_ROLE = keccak256(\"ESCAPE_HATCH_CALLER_ROLE\");\n\n event EscapeHatchBlackistedToken(address token);\n event EscapeHatchCalled(address token, uint amount);\n\n address public escapeHatchDestination;\n mapping (address=>bool) private escapeBlacklist; // Token contract addresses\n uint[20] private storageOffset; // reserve 20 slots for future upgrades\n\n function EscapableApp(address _escapeHatchDestination) public {\n _init(_escapeHatchDestination);\n }\n\n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _escapeHatchDestination) onlyInit public {\n _init(_escapeHatchDestination);\n }\n\n /// @notice The `escapeHatch()` should only be called as a last resort if a\n /// security issue is uncovered or something unexpected happened\n /// @param _token to transfer, use 0x0 for ether\n function escapeHatch(address _token) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) {\n require(escapeBlacklist[_token]==false);\n\n uint256 balance;\n\n /// @dev Logic for ether\n if (_token == 0x0) {\n balance = this.balance;\n escapeHatchDestination.transfer(balance);\n EscapeHatchCalled(_token, balance);\n return;\n }\n /// @dev Logic for tokens\n ERC20 token = ERC20(_token);\n balance = token.balanceOf(this);\n require(token.transfer(escapeHatchDestination, balance));\n EscapeHatchCalled(_token, balance);\n }\n\n /// @notice Checks to see if `_token` is in the blacklist of tokens\n /// @param _token the token address being queried\n /// @return False if `_token` is in the blacklist and can't be taken out of\n /// the contract via the `escapeHatch()`\n function isTokenEscapable(address _token) view external returns (bool) {\n return !escapeBlacklist[_token];\n }\n\n function _init(address _escapeHatchDestination) internal {\n initialized();\n require(_escapeHatchDestination != 0x0);\n\n escapeHatchDestination = _escapeHatchDestination;\n }\n\n /// @notice Creates the blacklist of tokens that are not able to be taken\n /// out of the contract; can only be done at the deployment, and the logic\n /// to add to the blacklist will be in the constructor of a child contract\n /// @param _token the token contract address that is to be blacklisted \n function _blacklistEscapeToken(address _token) internal {\n escapeBlacklist[_token] = true;\n EscapeHatchBlackistedToken(_token);\n }\n}\n" - }, - "./contracts/LiquidPledgingBase.sol": { - "keccak256": "0xc6bfc0886e82d9896a4aac941fc666536dc3f6e28f0a2f2ef486a1e12fce0aa5", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledgingBase.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: Adrià Massanet , RJ Ewing, Griff\n Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledgingStorage.sol\";\nimport \"./PledgeAdmins.sol\";\nimport \"./Pledges.sol\";\nimport \"./EscapableApp.sol\";\n\n/// @dev `LiquidPledgingBase` is the base level contract used to carry out\n/// liquidPledging's most basic functions, mostly handling and searching the\n/// data structures\ncontract LiquidPledgingBase is EscapableApp, LiquidPledgingStorage, PledgeAdmins, Pledges {\n\n event Transfer(uint indexed from, uint indexed to, uint amount);\n event CancelProject(uint indexed idProject);\n\n/////////////\n// Modifiers\n/////////////\n\n /// @dev The `vault`is the only addresses that can call a function with this\n /// modifier\n modifier onlyVault() {\n require(msg.sender == address(vault));\n _;\n }\n\n///////////////\n// Constructor\n///////////////\n\n function initialize(address _escapeHatchDestination) onlyInit public {\n require(false); // overload the EscapableApp\n _escapeHatchDestination;\n }\n\n /// @param _vault The vault where the ETH backing the pledges is stored\n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _vault, address _escapeHatchDestination) onlyInit public {\n super.initialize(_escapeHatchDestination);\n require(_vault != 0x0);\n\n vault = ILPVault(_vault);\n\n admins.length = 1; // we reserve the 0 admin\n pledges.length = 1; // we reserve the 0 pledge\n }\n\n\n/////////////////////////////\n// Public constant functions\n/////////////////////////////\n\n /// @notice Getter to find Delegate w/ the Pledge ID & the Delegate index\n /// @param idPledge The id number representing the pledge being queried\n /// @param idxDelegate The index number for the delegate in this Pledge \n function getPledgeDelegate(uint64 idPledge, uint64 idxDelegate) external view returns(\n uint64 idDelegate,\n address addr,\n string name\n ) {\n Pledge storage p = _findPledge(idPledge);\n idDelegate = p.delegationChain[idxDelegate - 1];\n PledgeAdmin storage delegate = _findAdmin(idDelegate);\n addr = delegate.addr;\n name = delegate.name;\n }\n\n///////////////////\n// Public functions\n///////////////////\n\n /// @notice Only affects pledges with the Pledged PledgeState for 2 things:\n /// #1: Checks if the pledge should be committed. This means that\n /// if the pledge has an intendedProject and it is past the\n /// commitTime, it changes the owner to be the proposed project\n /// (The UI will have to read the commit time and manually do what\n /// this function does to the pledge for the end user\n /// at the expiration of the commitTime)\n ///\n /// #2: Checks to make sure that if there has been a cancellation in the\n /// chain of projects, the pledge's owner has been changed\n /// appropriately.\n ///\n /// This function can be called by anybody at anytime on any pledge.\n /// In general it can be called to force the calls of the affected \n /// plugins, which also need to be predicted by the UI\n /// @param idPledge This is the id of the pledge that will be normalized\n /// @return The normalized Pledge!\n function normalizePledge(uint64 idPledge) public returns(uint64) {\n Pledge storage p = _findPledge(idPledge);\n\n // Check to make sure this pledge hasn't already been used \n // or is in the process of being used\n if (p.pledgeState != PledgeState.Pledged) {\n return idPledge;\n }\n\n // First send to a project if it's proposed and committed\n if ((p.intendedProject > 0) && ( _getTime() > p.commitTime)) {\n uint64 oldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n uint64 toPledge = _findOrCreatePledge(\n p.intendedProject,\n new uint64[](0),\n 0,\n 0,\n oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, p.amount);\n idPledge = toPledge;\n p = _findPledge(idPledge);\n }\n\n toPledge = _getOldestPledgeNotCanceled(idPledge);\n if (toPledge != idPledge) {\n _doTransfer(idPledge, toPledge, p.amount);\n }\n\n return toPledge;\n }\n\n////////////////////\n// Internal methods\n////////////////////\n\n /// @notice A check to see if the msg.sender is the owner or the\n /// plugin contract for a specific Admin\n /// @param idAdmin The id of the admin being checked\n function _checkAdminOwner(uint64 idAdmin) internal view {\n PledgeAdmin storage a = _findAdmin(idAdmin);\n require(msg.sender == address(a.plugin) || msg.sender == a.addr);\n }\n\n function _transfer( \n uint64 idSender,\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal\n {\n require(idReceiver > 0); // prevent burning value\n idPledge = normalizePledge(idPledge);\n\n Pledge storage p = _findPledge(idPledge);\n PledgeAdmin storage receiver = _findAdmin(idReceiver);\n\n require(p.pledgeState == PledgeState.Pledged);\n\n // If the sender is the owner of the Pledge\n if (p.owner == idSender) {\n\n if (receiver.adminType == PledgeAdminType.Giver) {\n _transferOwnershipToGiver(idPledge, amount, idReceiver);\n return;\n } else if (receiver.adminType == PledgeAdminType.Project) {\n _transferOwnershipToProject(idPledge, amount, idReceiver);\n return;\n } else if (receiver.adminType == PledgeAdminType.Delegate) {\n\n uint recieverDIdx = _getDelegateIdx(p, idReceiver);\n if (p.intendedProject > 0 && recieverDIdx != NOTFOUND) {\n // if there is an intendedProject and the receiver is in the delegationChain,\n // then we want to preserve the delegationChain as this is a veto of the\n // intendedProject by the owner\n\n if (recieverDIdx == p.delegationChain.length - 1) {\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged);\n _doTransfer(idPledge, toPledge, amount);\n return;\n }\n\n _undelegate(idPledge, amount, p.delegationChain.length - receiverDIdx - 1);\n return;\n }\n // owner is not vetoing an intendedProject and is transferring the pledge to a delegate,\n // so we want to reset the delegationChain\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n }\n\n // This should never be reached as the receiver.adminType\n // should always be either a Giver, Project, or Delegate\n assert(false);\n }\n\n // If the sender is a Delegate\n uint senderDIdx = _getDelegateIdx(p, idSender);\n if (senderDIdx != NOTFOUND) {\n\n // And the receiver is another Giver\n if (receiver.adminType == PledgeAdminType.Giver) {\n // Only transfer to the Giver who owns the pledge\n assert(p.owner == idReceiver);\n _undelegate(idPledge, amount, p.delegationChain.length);\n return;\n }\n\n // And the receiver is another Delegate\n if (receiver.adminType == PledgeAdminType.Delegate) {\n uint receiverDIdx = _getDelegateIdx(p, idReceiver);\n\n // And not in the delegationChain\n if (receiverDIdx == NOTFOUND) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n\n // And part of the delegationChain and is after the sender, then\n // all of the other delegates after the sender are removed and\n // the receiver is appended at the end of the delegationChain\n } else if (receiverDIdx > senderDIdx) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _appendDelegate(idPledge, amount, idReceiver);\n return;\n }\n\n // And is already part of the delegate chain but is before the\n // sender, then the sender and all of the other delegates after\n // the RECEIVER are removed from the delegationChain\n //TODO Check for Game Theory issues (from Arthur) this allows the sender to sort of go komakosi and remove himself and the delegates between himself and the receiver... should this authority be allowed?\n _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - receiverDIdx - 1\n );\n return;\n }\n\n // And the receiver is a Project, all the delegates after the sender\n // are removed and the amount is pre-committed to the project\n if (receiver.adminType == PledgeAdminType.Project) {\n idPledge = _undelegate(\n idPledge,\n amount,\n p.delegationChain.length - senderDIdx - 1\n );\n _proposeAssignProject(idPledge, amount, idReceiver);\n return;\n }\n }\n assert(false); // When the sender is not an owner or a delegate\n }\n\n /// @notice `transferOwnershipToProject` allows for the transfer of\n /// ownership to the project, but it can also be called by a project\n /// to un-delegate everyone by setting one's own id for the idReceiver\n /// @param idPledge the id of the pledge to be transfered.\n /// @param amount Quantity of value that's being transfered\n /// @param idReceiver The new owner of the project (or self to un-delegate)\n function _transferOwnershipToProject(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n // Ensure that the pledge is not already at max pledge depth\n // and the project has not been canceled\n require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL);\n require(!isProjectCanceled(idReceiver));\n\n uint64 oldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n uint64 toPledge = _findOrCreatePledge(\n idReceiver, // Set the new owner\n new uint64[](0), // clear the delegation chain\n 0,\n 0,\n oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n } \n\n\n /// @notice `transferOwnershipToGiver` allows for the transfer of\n /// value back to the Giver, value is placed in a pledged state\n /// without being attached to a project, delegation chain, or time line.\n /// @param idPledge the id of the pledge to be transferred.\n /// @param amount Quantity of value that's being transferred\n /// @param idReceiver The new owner of the pledge\n function _transferOwnershipToGiver(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n uint64 toPledge = _findOrCreatePledge(\n idReceiver,\n new uint64[](0),\n 0,\n 0,\n 0,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `appendDelegate` allows for a delegate to be added onto the\n /// end of the delegate chain for a given Pledge.\n /// @param idPledge the id of the pledge thats delegate chain will be modified.\n /// @param amount Quantity of value that's being chained.\n /// @param idReceiver The delegate to be added at the end of the chain\n function _appendDelegate(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.delegationChain.length < MAX_DELEGATES);\n uint64[] memory newDelegationChain = new uint64[](\n p.delegationChain.length + 1\n );\n for (uint i = 0; i < p.delegationChain.length; i++) {\n newDelegationChain[i] = p.delegationChain[i];\n }\n\n // Make the last item in the array the idReceiver\n newDelegationChain[p.delegationChain.length] = idReceiver;\n\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n newDelegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `appendDelegate` allows for a delegate to be added onto the\n /// end of the delegate chain for a given Pledge.\n /// @param idPledge the id of the pledge thats delegate chain will be modified.\n /// @param amount Quantity of value that's shifted from delegates.\n /// @param q Number (or depth) of delegates to remove\n /// @return toPledge The id for the pledge being adjusted or created\n function _undelegate(\n uint64 idPledge,\n uint amount,\n uint q\n ) internal returns (uint64 toPledge)\n {\n Pledge storage p = _findPledge(idPledge);\n uint64[] memory newDelegationChain = new uint64[](\n p.delegationChain.length - q\n );\n\n for (uint i = 0; i < p.delegationChain.length - q; i++) {\n newDelegationChain[i] = p.delegationChain[i];\n }\n toPledge = _findOrCreatePledge(\n p.owner,\n newDelegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `proposeAssignProject` proposes the assignment of a pledge\n /// to a specific project.\n /// @dev This function should potentially be named more specifically.\n /// @param idPledge the id of the pledge that will be assigned.\n /// @param amount Quantity of value this pledge leader would be assigned.\n /// @param idReceiver The project this pledge will potentially \n /// be assigned to.\n function _proposeAssignProject(\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) internal \n {\n Pledge storage p = _findPledge(idPledge);\n\n require(_getPledgeLevel(p) < MAX_INTERPROJECT_LEVEL);\n require(!isProjectCanceled(idReceiver));\n\n uint64 toPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n idReceiver,\n uint64(_getTime() + _maxCommitTime(p)),\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n _doTransfer(idPledge, toPledge, amount);\n }\n\n /// @notice `doTransfer` is designed to allow for pledge amounts to be \n /// shifted around internally.\n /// @param from This is the id of the pledge from which value will be transferred.\n /// @param to This is the id of the pledge that value will be transferred to.\n /// @param _amount The amount of value that will be transferred.\n function _doTransfer(uint64 from, uint64 to, uint _amount) internal {\n uint amount = _callPlugins(true, from, to, _amount);\n if (from == to) {\n return;\n }\n if (amount == 0) {\n return;\n }\n\n Pledge storage pFrom = _findPledge(from);\n Pledge storage pTo = _findPledge(to);\n\n require(pFrom.amount >= amount);\n pFrom.amount -= amount;\n pTo.amount += amount;\n\n Transfer(from, to, amount);\n _callPlugins(false, from, to, amount);\n }\n\n /// @notice A getter to find the longest commitTime out of the owner and all\n /// the delegates for a specified pledge\n /// @param p The Pledge being queried\n /// @return The maximum commitTime out of the owner and all the delegates\n function _maxCommitTime(Pledge p) internal view returns(uint64 commitTime) {\n PledgeAdmin storage a = _findAdmin(p.owner);\n commitTime = a.commitTime; // start with the owner's commitTime\n\n for (uint i = 0; i < p.delegationChain.length; i++) {\n a = _findAdmin(p.delegationChain[i]);\n\n // If a delegate's commitTime is longer, make it the new commitTime\n if (a.commitTime > commitTime) {\n commitTime = a.commitTime;\n }\n }\n }\n\n /// @notice A getter to find the oldest pledge that hasn't been canceled\n /// @param idPledge The starting place to lookup the pledges\n /// @return The oldest idPledge that hasn't been canceled (DUH!)\n function _getOldestPledgeNotCanceled(\n uint64 idPledge\n ) internal view returns(uint64)\n {\n if (idPledge == 0) {\n return 0;\n }\n\n Pledge storage p = _findPledge(idPledge);\n PledgeAdmin storage admin = _findAdmin(p.owner);\n \n if (admin.adminType == PledgeAdminType.Giver) {\n return idPledge;\n }\n\n assert(admin.adminType == PledgeAdminType.Project);\n if (!isProjectCanceled(p.owner)) {\n return idPledge;\n }\n\n return _getOldestPledgeNotCanceled(p.oldPledge);\n }\n\n /// @notice `callPlugin` is used to trigger the general functions in the\n /// plugin for any actions needed before and after a transfer happens.\n /// Specifically what this does in relation to the plugin is something\n /// that largely depends on the functions of that plugin. This function\n /// is generally called in pairs, once before, and once after a transfer.\n /// @param before This toggle determines whether the plugin call is occurring\n /// before or after a transfer.\n /// @param adminId This should be the Id of the *trusted* individual\n /// who has control over this plugin.\n /// @param fromPledge This is the Id from which value is being transfered.\n /// @param toPledge This is the Id that value is being transfered to.\n /// @param context The situation that is triggering the plugin. See plugin\n /// for a full description of contexts.\n /// @param amount The amount of value that is being transfered.\n function _callPlugin(\n bool before,\n uint64 adminId,\n uint64 fromPledge,\n uint64 toPledge,\n uint64 context,\n address token,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n uint newAmount;\n allowedAmount = amount;\n PledgeAdmin storage admin = _findAdmin(adminId);\n\n // Checks admin has a plugin assigned and a non-zero amount is requested\n if (address(admin.plugin) != 0 && allowedAmount > 0) {\n // There are two separate functions called in the plugin.\n // One is called before the transfer and one after\n if (before) {\n newAmount = admin.plugin.beforeTransfer(\n adminId,\n fromPledge,\n toPledge,\n context,\n token,\n amount\n );\n require(newAmount <= allowedAmount);\n allowedAmount = newAmount;\n } else {\n admin.plugin.afterTransfer(\n adminId,\n fromPledge,\n toPledge,\n context,\n token,\n amount\n );\n }\n }\n }\n\n /// @notice `callPluginsPledge` is used to apply plugin calls to\n /// the delegate chain and the intended project if there is one.\n /// It does so in either a transferring or receiving context based\n /// on the `p` and `fromPledge` parameters.\n /// @param before This toggle determines whether the plugin call is occuring\n /// before or after a transfer.\n /// @param idPledge This is the id of the pledge on which this plugin\n /// is being called.\n /// @param fromPledge This is the Id from which value is being transfered.\n /// @param toPledge This is the Id that value is being transfered to.\n /// @param amount The amount of value that is being transfered.\n function _callPluginsPledge(\n bool before,\n uint64 idPledge,\n uint64 fromPledge,\n uint64 toPledge,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n // Determine if callPlugin is being applied in a receiving\n // or transferring context\n uint64 offset = idPledge == fromPledge ? 0 : 256;\n allowedAmount = amount;\n Pledge storage p = _findPledge(idPledge);\n\n // Always call the plugin on the owner\n allowedAmount = _callPlugin(\n before,\n p.owner,\n fromPledge,\n toPledge,\n offset,\n p.token,\n allowedAmount\n );\n\n // Apply call plugin to all delegates\n for (uint64 i = 0; i < p.delegationChain.length; i++) {\n allowedAmount = _callPlugin(\n before,\n p.delegationChain[i],\n fromPledge,\n toPledge,\n offset + i + 1,\n p.token,\n allowedAmount\n );\n }\n\n // If there is an intended project also call the plugin in\n // either a transferring or receiving context based on offset\n // on the intended project\n if (p.intendedProject > 0) {\n allowedAmount = _callPlugin(\n before,\n p.intendedProject,\n fromPledge,\n toPledge,\n offset + 255,\n p.token,\n allowedAmount\n );\n }\n }\n\n /// @notice `callPlugins` calls `callPluginsPledge` once for the transfer\n /// context and once for the receiving context. The aggregated \n /// allowed amount is then returned.\n /// @param before This toggle determines whether the plugin call is occurring\n /// before or after a transfer.\n /// @param fromPledge This is the Id from which value is being transferred.\n /// @param toPledge This is the Id that value is being transferred to.\n /// @param amount The amount of value that is being transferred.\n function _callPlugins(\n bool before,\n uint64 fromPledge,\n uint64 toPledge,\n uint amount\n ) internal returns (uint allowedAmount) \n {\n allowedAmount = amount;\n\n // Call the plugins in the transfer context\n allowedAmount = _callPluginsPledge(\n before,\n fromPledge,\n fromPledge,\n toPledge,\n allowedAmount\n );\n\n // Call the plugins in the receive context\n allowedAmount = _callPluginsPledge(\n before,\n toPledge,\n fromPledge,\n toPledge,\n allowedAmount\n );\n }\n\n/////////////\n// Test functions\n/////////////\n\n /// @notice Basic helper function to return the current time\n function _getTime() internal view returns (uint) {\n return now;\n }\n}\n" - }, - "./contracts/LiquidPledging.sol": { - "keccak256": "0xc98ae77346207a5fcdf07aac0f7f1ad366e517070a40ac56b859b8ca5a31ba3d", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LiquidPledging.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina, RJ Ewing\n Contributors: Adrià Massanet , Griff Green,\n Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\nimport \"./LiquidPledgingBase.sol\";\n\n/// @dev `LiquidPledging` allows for liquid pledging through the use of\n/// internal id structures and delegate chaining. All basic operations for\n/// handling liquid pledging are supplied as well as plugin features\n/// to allow for expanded functionality.\ncontract LiquidPledging is LiquidPledgingBase {\n\n function LiquidPledging(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public {\n }\n\n function addGiverAndDonate(uint64 idReceiver, address token, uint amount)\n public\n {\n addGiverAndDonate(idReceiver, msg.sender, token, amount);\n }\n\n function addGiverAndDonate(uint64 idReceiver, address donorAddress, address token, uint amount)\n public\n {\n require(donorAddress != 0);\n // default to a 3 day (259200 seconds) commitTime\n uint64 idGiver = addGiver(donorAddress, \"\", \"\", 259200, ILiquidPledgingPlugin(0));\n donate(idGiver, idReceiver, token, amount);\n }\n\n /// @notice This is how value enters the system and how pledges are created;\n /// the ether is sent to the vault, an pledge for the Giver is created (or\n /// found), the amount of ETH donated in wei is added to the `amount` in\n /// the Giver's Pledge, and an LP transfer is done to the idReceiver for\n /// the full amount\n /// @param idGiver The id of the Giver donating\n /// @param idReceiver The Admin receiving the donation; can be any Admin:\n /// the Giver themselves, another Giver, a Delegate or a Project\n function donate(uint64 idGiver, uint64 idReceiver, address token, uint amount)\n public\n {\n require(idGiver > 0); // prevent burning donations. idReceiver is checked in _transfer\n require(amount > 0);\n require(token != 0x0);\n\n PledgeAdmin storage sender = _findAdmin(idGiver);\n require(sender.adminType == PledgeAdminType.Giver);\n\n // TODO should this be done at the end of this function?\n // what re-entrancy issues are there if this is done here?\n // if done at the end of the function, will that affect plugins?\n require(ERC20(token).transferFrom(msg.sender, address(vault), amount)); // transfer the token to the `vault`\n\n uint64 idPledge = _findOrCreatePledge(\n idGiver,\n new uint64[](0), // Creates empty array for delegationChain\n 0,\n 0,\n 0,\n token,\n PledgeState.Pledged\n );\n\n Pledge storage pTo = _findPledge(idPledge);\n pTo.amount += amount;\n\n Transfer(0, idPledge, amount);\n\n _transfer(idGiver, idPledge, amount, idReceiver);\n }\n\n /// @notice Transfers amounts between pledges for internal accounting\n /// @param idSender Id of the Admin that is transferring the amount from\n /// Pledge to Pledge; this admin must have permissions to move the value\n /// @param idPledge Id of the pledge that's moving the value\n /// @param amount Quantity of ETH (in wei) that this pledge is transferring \n /// the authority to withdraw from the vault\n /// @param idReceiver Destination of the `amount`, can be a Giver/Project sending\n /// to a Giver, a Delegate or a Project; a Delegate sending to another\n /// Delegate, or a Delegate pre-commiting it to a Project \n function transfer( \n uint64 idSender,\n uint64 idPledge,\n uint amount,\n uint64 idReceiver\n ) public\n {\n _checkAdminOwner(idSender);\n _transfer(idSender, idPledge, amount, idReceiver);\n }\n\n /// @notice Authorizes a payment be made from the `vault` can be used by the\n /// Giver to veto a pre-committed donation from a Delegate to an\n /// intendedProject\n /// @param idPledge Id of the pledge that is to be redeemed into ether\n /// @param amount Quantity of ether (in wei) to be authorized\n function withdraw(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge); // Updates pledge info \n\n Pledge storage p = _findPledge(idPledge);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paying\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n\n PledgeAdmin storage owner = _findAdmin(p.owner);\n vault.authorizePayment(bytes32(idNewPledge), owner.addr, p.token, amount);\n }\n\n /// @notice `onlyVault` Confirms a withdraw request changing the PledgeState\n /// from Paying to Paid\n /// @param idPledge Id of the pledge that is to be withdrawn\n /// @param amount Quantity of ether (in wei) to be withdrawn\n function confirmPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n uint64 idNewPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Paid\n );\n\n _doTransfer(idPledge, idNewPledge, amount);\n }\n\n /// @notice `onlyVault` Cancels a withdraw request, changing the PledgeState\n /// from Paying back to Pledged\n /// @param idPledge Id of the pledge that's withdraw is to be canceled\n /// @param amount Quantity of ether (in wei) to be canceled\n function cancelPayment(uint64 idPledge, uint amount) public onlyVault {\n Pledge storage p = _findPledge(idPledge);\n\n require(p.pledgeState == PledgeState.Paying);\n\n // When a payment is canceled, never is assigned to a project.\n uint64 idOldPledge = _findOrCreatePledge(\n p.owner,\n p.delegationChain,\n 0,\n 0,\n p.oldPledge,\n p.token,\n PledgeState.Pledged\n );\n\n idOldPledge = normalizePledge(idOldPledge);\n\n _doTransfer(idPledge, idOldPledge, amount);\n }\n\n /// @notice Changes the `project.canceled` flag to `true`; cannot be undone\n /// @param idProject Id of the project that is to be canceled\n function cancelProject(uint64 idProject) public {\n PledgeAdmin storage project = _findAdmin(idProject);\n _checkAdminOwner(idProject);\n project.canceled = true;\n\n CancelProject(idProject);\n }\n\n /// @notice Transfers `amount` in `idPledge` back to the `oldPledge` that\n /// that sent it there in the first place, a Ctrl-z \n /// @param idPledge Id of the pledge that is to be canceled\n /// @param amount Quantity of ether (in wei) to be transfered to the \n /// `oldPledge`\n function cancelPledge(uint64 idPledge, uint amount) public {\n idPledge = normalizePledge(idPledge);\n\n Pledge storage p = _findPledge(idPledge);\n require(p.oldPledge != 0);\n require(p.pledgeState == PledgeState.Pledged);\n _checkAdminOwner(p.owner);\n\n uint64 oldPledge = _getOldestPledgeNotCanceled(p.oldPledge);\n _doTransfer(idPledge, oldPledge, amount);\n }\n\n\n////////\n// Multi pledge methods\n////////\n\n // @dev This set of functions makes moving a lot of pledges around much more\n // efficient (saves gas) than calling these functions in series\n \n \n /// @dev Bitmask used for dividing pledge amounts in Multi pledge methods\n uint constant D64 = 0x10000000000000000;\n\n /// @notice Transfers multiple amounts within multiple Pledges in an\n /// efficient single call \n /// @param idSender Id of the Admin that is transferring the amounts from\n /// all the Pledges; this admin must have permissions to move the value\n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n /// @param idReceiver Destination of the `pledesAmounts`, can be a Giver or \n /// Project sending to a Giver, a Delegate or a Project; a Delegate sending\n /// to another Delegate, or a Delegate pre-commiting it to a Project \n function mTransfer(\n uint64 idSender,\n uint[] pledgesAmounts,\n uint64 idReceiver\n ) public \n {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n transfer(idSender, idPledge, amount, idReceiver);\n }\n }\n\n /// @notice Authorizes multiple amounts within multiple Pledges to be\n /// withdrawn from the `vault` in an efficient single call \n /// @param pledgesAmounts An array of Pledge amounts and the idPledges with \n /// which the amounts are associated; these are extrapolated using the D64\n /// bitmask\n function mWithdraw(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n withdraw(idPledge, amount);\n }\n }\n\n /// @notice `mConfirmPayment` allows for multiple pledges to be confirmed\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mConfirmPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n confirmPayment(idPledge, amount);\n }\n }\n\n /// @notice `mCancelPayment` allows for multiple pledges to be canceled\n /// efficiently\n /// @param pledgesAmounts An array of pledge amounts and IDs which are extrapolated\n /// using the D64 bitmask\n function mCancelPayment(uint[] pledgesAmounts) public {\n for (uint i = 0; i < pledgesAmounts.length; i++ ) {\n uint64 idPledge = uint64(pledgesAmounts[i] & (D64-1));\n uint amount = pledgesAmounts[i] / D64;\n\n cancelPayment(idPledge, amount);\n }\n }\n\n /// @notice `mNormalizePledge` allows for multiple pledges to be\n /// normalized efficiently\n /// @param pledges An array of pledge IDs\n function mNormalizePledge(uint64[] pledges) public {\n for (uint i = 0; i < pledges.length; i++ ) {\n normalizePledge(pledges[i]);\n }\n }\n}\n" - }, - "@aragon/os/contracts/kernel/KernelStorage.sol": { - "keccak256": "0x5eeaeb6e75a435278d5a2d74dab865bd9c2a88fba296db5b8669769d6a60573e", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/KernelStorage.sol" - ], - "content": "pragma solidity 0.4.18;\n\n\ncontract KernelConstants {\n bytes32 constant public CORE_NAMESPACE = keccak256(\"core\");\n bytes32 constant public APP_BASES_NAMESPACE = keccak256(\"base\");\n bytes32 constant public APP_ADDR_NAMESPACE = keccak256(\"app\");\n\n bytes32 constant public KERNEL_APP_ID = keccak256(\"kernel.aragonpm.eth\");\n bytes32 constant public KERNEL_APP = keccak256(CORE_NAMESPACE, KERNEL_APP_ID);\n\n bytes32 constant public ACL_APP_ID = keccak256(\"acl.aragonpm.eth\");\n bytes32 constant public ACL_APP = keccak256(APP_ADDR_NAMESPACE, ACL_APP_ID);\n}\n\n\ncontract KernelStorage is KernelConstants {\n mapping (bytes32 => address) public apps;\n}\n" - }, - "@aragon/os/contracts/apps/IAppProxy.sol": { - "keccak256": "0x4d5f398f887030d6d0b5045e0424b59d58abd718143289afcaf3e160d6c91736", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/IAppProxy.sol" - ], - "content": "pragma solidity 0.4.18;\n\ninterface IAppProxy {\n function isUpgradeable() public pure returns (bool);\n function getCode() public view returns (address);\n}\n" - }, - "@aragon/os/contracts/common/DelegateProxy.sol": { - "keccak256": "0x81bab220700a9a5def3ac54278ccec046be0b1c333dba9567f7175e358414d87", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/common/DelegateProxy.sol" - ], - "content": "pragma solidity 0.4.18;\n\n\ncontract DelegateProxy {\n /**\n * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!)\n * @param _dst Destination address to perform the delegatecall\n * @param _calldata Calldata for the delegatecall\n */\n function delegatedFwd(address _dst, bytes _calldata) internal {\n require(isContract(_dst));\n assembly {\n let result := delegatecall(sub(gas, 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0)\n let size := returndatasize\n\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, size)\n\n // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas.\n // if the call returned error data, forward it\n switch result case 0 { revert(ptr, size) }\n default { return(ptr, size) }\n }\n }\n\n function isContract(address _target) internal view returns (bool) {\n uint256 size;\n assembly { size := extcodesize(_target) }\n return size > 0;\n }\n}\n" - }, - "@aragon/os/contracts/apps/AppProxyBase.sol": { - "keccak256": "0x907218cac02c5f7a10873eb30fb1ffaecdd93527a0ff7e2f0305590bf585d06b", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppProxyBase.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"./IAppProxy.sol\";\nimport \"./AppStorage.sol\";\nimport \"../common/DelegateProxy.sol\";\nimport \"../kernel/KernelStorage.sol\";\n\n\ncontract AppProxyBase is IAppProxy, AppStorage, DelegateProxy, KernelConstants {\n /**\n * @dev Initialize AppProxy\n * @param _kernel Reference to organization kernel for the app\n * @param _appId Identifier for app\n * @param _initializePayload Payload for call to be made after setup to initialize\n */\n function AppProxyBase(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public {\n kernel = _kernel;\n appId = _appId;\n\n // Implicit check that kernel is actually a Kernel\n // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to\n // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on\n // it.\n address appCode = getAppBase(appId);\n\n // If initialize payload is provided, it will be executed\n if (_initializePayload.length > 0) {\n require(isContract(appCode));\n // Cannot make delegatecall as a delegateproxy.delegatedFwd as it\n // returns ending execution context and halts contract deployment\n require(appCode.delegatecall(_initializePayload));\n }\n }\n\n function getAppBase(bytes32 _appId) internal view returns (address) {\n return kernel.getApp(keccak256(APP_BASES_NAMESPACE, _appId));\n }\n\n function () payable public {\n address target = getCode();\n require(target != 0); // if app code hasn't been set yet, don't call\n delegatedFwd(target, msg.data);\n }\n}" - }, - "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { - "keccak256": "0x4613af6e313048b7de649d54630276fb18154dac5674f057109f0e0591f11cb2", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppProxyUpgradeable.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"./AppProxyBase.sol\";\n\n\ncontract AppProxyUpgradeable is AppProxyBase {\n address public pinnedCode;\n\n /**\n * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app)\n * @param _kernel Reference to organization kernel for the app\n * @param _appId Identifier for app\n * @param _initializePayload Payload for call to be made after setup to initialize\n */\n function AppProxyUpgradeable(IKernel _kernel, bytes32 _appId, bytes _initializePayload)\n AppProxyBase(_kernel, _appId, _initializePayload) public\n {\n\n }\n\n function getCode() public view returns (address) {\n return getAppBase(appId);\n }\n\n function isUpgradeable() public pure returns (bool) {\n return true;\n }\n}\n" - }, - "@aragon/os/contracts/apps/AppProxyPinned.sol": { - "keccak256": "0xfe66e88413adc4d60ae53352046bd23ebd0aeb3120599d445df19caa8b095c26", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/apps/AppProxyPinned.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"./AppProxyBase.sol\";\n\n\ncontract AppProxyPinned is AppProxyBase {\n /**\n * @dev Initialize AppProxyPinned (makes it an un-upgradeable Aragon app)\n * @param _kernel Reference to organization kernel for the app\n * @param _appId Identifier for app\n * @param _initializePayload Payload for call to be made after setup to initialize\n */\n function AppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload)\n AppProxyBase(_kernel, _appId, _initializePayload) public\n {\n pinnedCode = getAppBase(appId);\n require(pinnedCode != address(0));\n }\n\n function getCode() public view returns (address) {\n return pinnedCode;\n }\n\n function isUpgradeable() public pure returns (bool) {\n return false;\n }\n\n function () payable public {\n delegatedFwd(getCode(), msg.data);\n }\n}" - }, - "@aragon/os/contracts/factory/AppProxyFactory.sol": { - "keccak256": "0xa5314f57f93d8e633724bd9f94ad43f127c5b5466dcd0ef32fe0f78d5d431592", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/factory/AppProxyFactory.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"../apps/AppProxyUpgradeable.sol\";\nimport \"../apps/AppProxyPinned.sol\";\n\n\ncontract AppProxyFactory {\n event NewAppProxy(address proxy);\n\n function newAppProxy(IKernel _kernel, bytes32 _appId) public returns (AppProxyUpgradeable) {\n return newAppProxy(_kernel, _appId, new bytes(0));\n }\n\n function newAppProxy(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyUpgradeable) {\n AppProxyUpgradeable proxy = new AppProxyUpgradeable(_kernel, _appId, _initializePayload);\n NewAppProxy(address(proxy));\n return proxy;\n }\n\n function newAppProxyPinned(IKernel _kernel, bytes32 _appId) public returns (AppProxyPinned) {\n return newAppProxyPinned(_kernel, _appId, new bytes(0));\n }\n\n function newAppProxyPinned(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public returns (AppProxyPinned) {\n AppProxyPinned proxy = new AppProxyPinned(_kernel, _appId, _initializePayload);\n NewAppProxy(address(proxy));\n return proxy;\n }\n}\n" - }, - "@aragon/os/contracts/kernel/Kernel.sol": { - "keccak256": "0x0525a68271476d181b698069adf27074e3d5f058a331b71424479489df30694d", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/Kernel.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"./IKernel.sol\";\nimport \"./KernelStorage.sol\";\nimport \"../acl/ACLSyntaxSugar.sol\";\nimport \"../apps/IAppProxy.sol\";\nimport \"../common/Initializable.sol\";\nimport \"../factory/AppProxyFactory.sol\";\n\n\ncontract Kernel is IKernel, KernelStorage, Initializable, AppProxyFactory, ACLSyntaxSugar {\n bytes32 constant public APP_MANAGER_ROLE = bytes32(1);\n\n /**\n * @dev Initialize can only be called once. It saves the block number in which it was initialized.\n * @notice Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions\n * @param _baseAcl Address of base ACL app\n * @param _permissionsCreator Entity that will be given permission over createPermission\n */\n function initialize(address _baseAcl, address _permissionsCreator) onlyInit public {\n initialized();\n\n IACL acl = IACL(newAppProxy(this, ACL_APP_ID));\n\n _setApp(APP_BASES_NAMESPACE, ACL_APP_ID, _baseAcl);\n _setApp(APP_ADDR_NAMESPACE, ACL_APP_ID, acl);\n\n acl.initialize(_permissionsCreator);\n }\n\n /**\n * @dev Create a new instance of an app linked to this kernel and set its base\n * implementation if it was not already set\n * @param _name Name of the app\n * @param _appBase Address of the app's base implementation\n * @return AppProxy instance\n */\n function newAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) {\n _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase);\n appProxy = newAppProxy(this, _name);\n }\n\n /**\n * @dev Create a new pinned instance of an app linked to this kernel and set\n * its base implementation if it was not already set\n * @param _name Name of the app\n * @param _appBase Address of the app's base implementation\n * @return AppProxy instance\n */\n function newPinnedAppInstance(bytes32 _name, address _appBase) auth(APP_MANAGER_ROLE, arr(APP_BASES_NAMESPACE, _name)) public returns (IAppProxy appProxy) {\n _setAppIfNew(APP_BASES_NAMESPACE, _name, _appBase);\n appProxy = newAppProxyPinned(this, _name);\n }\n\n /**\n * @dev Set the resolving address of an app instance or base implementation\n * @param _namespace App namespace to use\n * @param _name Name of the app\n * @param _app Address of the app\n * @return ID of app\n */\n function setApp(bytes32 _namespace, bytes32 _name, address _app) auth(APP_MANAGER_ROLE, arr(_namespace, _name)) kernelIntegrity public returns (bytes32 id) {\n return _setApp(_namespace, _name, _app);\n }\n\n /**\n * @dev Get the address of an app instance or base implementation\n * @param _id App identifier\n * @return Address of the app\n */\n function getApp(bytes32 _id) public view returns (address) {\n return apps[_id];\n }\n\n /**\n * @dev Get the installed ACL app\n * @return ACL app\n */\n function acl() public view returns (IACL) {\n return IACL(getApp(ACL_APP));\n }\n\n /**\n * @dev Function called by apps to check ACL on kernel or to check permission status\n * @param _who Sender of the original call\n * @param _where Address of the app\n * @param _what Identifier for a group of actions in app\n * @param _how Extra data for ACL auth\n * @return boolean indicating whether the ACL allows the role or not\n */\n function hasPermission(address _who, address _where, bytes32 _what, bytes _how) public view returns (bool) {\n return acl().hasPermission(_who, _where, _what, _how);\n }\n\n function _setApp(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) {\n id = keccak256(_namespace, _name);\n apps[id] = _app;\n SetApp(_namespace, _name, id, _app);\n }\n\n function _setAppIfNew(bytes32 _namespace, bytes32 _name, address _app) internal returns (bytes32 id) {\n id = keccak256(_namespace, _name);\n\n if (_app != address(0)) {\n address app = getApp(id);\n if (app != address(0)) {\n require(app == _app);\n } else {\n apps[id] = _app;\n SetApp(_namespace, _name, id, _app);\n }\n }\n }\n\n modifier auth(bytes32 _role, uint256[] memory params) {\n bytes memory how;\n uint256 byteLength = params.length * 32;\n assembly {\n how := params // forced casting\n mstore(how, byteLength)\n }\n // Params is invalid from this point fwd\n require(hasPermission(msg.sender, address(this), _role, how));\n _;\n }\n\n modifier kernelIntegrity {\n _; // After execution check integrity\n address kernel = getApp(KERNEL_APP);\n uint256 size;\n assembly { size := extcodesize(kernel) }\n require(size > 0);\n }\n}\n" - }, - "./contracts/LPConstants.sol": { - "keccak256": "0x558e8800a807b65c952c7d731ca1c5c42539d734df4d545f801ecff0f0cd2314", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LPConstants.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"@aragon/os/contracts/kernel/KernelStorage.sol\";\n\ncontract LPConstants is KernelConstants {\n bytes32 constant public VAULT_APP_ID = keccak256(\"vault\");\n bytes32 constant public LP_APP_ID = keccak256(\"liquidPledging\");\n}" - }, - "./contracts/LPFactory.sol": { - "keccak256": "0x24986a9eb2cbc057f7816e2da5d1054d6b1b64f5542c09a3f3abfc77da2630dc", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LPFactory.sol" - ], - "content": "pragma solidity ^0.4.18;\n\nimport \"@aragon/os/contracts/factory/DAOFactory.sol\";\nimport \"./LPVault.sol\";\nimport \"./LiquidPledging.sol\";\nimport \"./LPConstants.sol\";\n\ncontract LPFactory is LPConstants, DAOFactory {\n address public vaultBase;\n address public lpBase;\n\n event DeployVault(address vault);\n event DeployLiquidPledging(address liquidPledging);\n\n function LPFactory(address _vaultBase, address _lpBase) public DAOFactory(0) {\n require(_vaultBase != 0);\n require(_lpBase != 0);\n vaultBase = _vaultBase;\n lpBase = _lpBase;\n }\n\n function newLP(address _root, address _escapeHatchDestination) external {\n Kernel kernel = newDAO(this);\n ACL acl = ACL(kernel.acl());\n\n bytes32 appManagerRole = kernel.APP_MANAGER_ROLE();\n\n acl.createPermission(this, address(kernel), appManagerRole, this);\n\n LPVault v = LPVault(kernel.newAppInstance(VAULT_APP_ID, vaultBase));\n LiquidPledging lp = LiquidPledging(kernel.newAppInstance(LP_APP_ID, lpBase));\n v.initialize(address(lp), _escapeHatchDestination);\n lp.initialize(address(v), _escapeHatchDestination);\n\n // register the lp instance w/ the kernel\n kernel.setApp(kernel.APP_ADDR_NAMESPACE(), LP_APP_ID, address(lp));\n\n _setPermissions(_root, acl, kernel, v, lp);\n }\n\n function _setPermissions(address _root, ACL acl, Kernel kernel, LPVault v, LiquidPledging lp) internal {\n bytes32 appManagerRole = kernel.APP_MANAGER_ROLE();\n bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE();\n bytes32 hatchCallerRole = v.ESCAPE_HATCH_CALLER_ROLE();\n bytes32 pluginManagerRole = lp.PLUGIN_MANAGER_ROLE();\n\n acl.createPermission(_root, address(v), hatchCallerRole, _root);\n acl.createPermission(_root, address(lp), hatchCallerRole, _root);\n acl.createPermission(_root, address(lp), pluginManagerRole, _root);\n // TODO: set pledgeAdminRole manager to 0x0? maybe it doesn't matter b/c it can be recreated by _root anyways\n\n acl.grantPermission(_root, address(kernel), appManagerRole);\n acl.grantPermission(_root, address(acl), permRole);\n acl.revokePermission(this, address(kernel), appManagerRole);\n acl.revokePermission(this, address(acl), permRole);\n\n acl.setPermissionManager(_root, address(kernel), appManagerRole);\n acl.setPermissionManager(_root, address(acl), permRole);\n\n DeployVault(address(v));\n DeployLiquidPledging(address(lp));\n }\n}" - }, - "@aragon/os/contracts/kernel/KernelProxy.sol": { - "keccak256": "0xe9baab334f8e30a2d9a4fb21a54b46a6603597f812deef2ec36215491e6dcf11", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/kernel/KernelProxy.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"./KernelStorage.sol\";\nimport \"../common/DelegateProxy.sol\";\n\n\ncontract KernelProxy is KernelStorage, DelegateProxy {\n /**\n * @dev KernelProxy is a proxy contract to a kernel implementation. The implementation\n * can update the reference, which effectively upgrades the contract\n * @param _kernelImpl Address of the contract used as implementation for kernel\n */\n function KernelProxy(address _kernelImpl) public {\n apps[keccak256(CORE_NAMESPACE, KERNEL_APP_ID)] = _kernelImpl;\n }\n\n /**\n * @dev All calls made to the proxy are forwarded to the kernel implementation via a delegatecall\n * @return Any bytes32 value the implementation returns\n */\n function () payable public {\n delegatedFwd(apps[KERNEL_APP], msg.data);\n }\n}" - }, - "@aragon/os/contracts/acl/ACL.sol": { - "keccak256": "0x7e636d70192cc2b18d00df37ff91e1f3b4e5a6dfb0c92f9d90441dceac1f2a25", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/acl/ACL.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"../apps/AragonApp.sol\";\nimport \"./ACLSyntaxSugar.sol\";\nimport \"./IACL.sol\";\n\n\ninterface ACLOracle {\n function canPerform(address who, address where, bytes32 what) public view returns (bool);\n}\n\n\ncontract ACL is IACL, AragonApp, ACLHelpers {\n bytes32 constant public CREATE_PERMISSIONS_ROLE = bytes32(1);\n\n // whether a certain entity has a permission\n mapping (bytes32 => bytes32) permissions; // 0 for no permission, or parameters id\n mapping (bytes32 => Param[]) public permissionParams;\n\n // who is the manager of a permission\n mapping (bytes32 => address) permissionManager;\n\n enum Op { NONE, EQ, NEQ, GT, LT, GTE, LTE, NOT, AND, OR, XOR, IF_ELSE, RET } // op types\n\n struct Param {\n uint8 id;\n uint8 op;\n uint240 value; // even though value is an uint240 it can store addresses\n // in the case of 32 byte hashes losing 2 bytes precision isn't a huge deal\n // op and id take less than 1 byte each so it can be kept in 1 sstore\n }\n\n uint8 constant BLOCK_NUMBER_PARAM_ID = 200;\n uint8 constant TIMESTAMP_PARAM_ID = 201;\n uint8 constant SENDER_PARAM_ID = 202;\n uint8 constant ORACLE_PARAM_ID = 203;\n uint8 constant LOGIC_OP_PARAM_ID = 204;\n uint8 constant PARAM_VALUE_PARAM_ID = 205;\n // TODO: Add execution times param type?\n\n bytes32 constant public EMPTY_PARAM_HASH = keccak256(uint256(0));\n address constant ANY_ENTITY = address(-1);\n\n modifier onlyPermissionManager(address _app, bytes32 _role) {\n require(msg.sender == getPermissionManager(_app, _role));\n _;\n }\n\n event SetPermission(address indexed entity, address indexed app, bytes32 indexed role, bool allowed);\n event ChangePermissionManager(address indexed app, bytes32 indexed role, address indexed manager);\n\n /**\n * @dev Initialize can only be called once. It saves the block number in which it was initialized.\n * @notice Initializes an ACL instance and sets `_permissionsCreator` as the entity that can create other permissions\n * @param _permissionsCreator Entity that will be given permission over createPermission\n */\n function initialize(address _permissionsCreator) onlyInit public {\n initialized();\n require(msg.sender == address(kernel));\n\n _createPermission(_permissionsCreator, this, CREATE_PERMISSIONS_ROLE, _permissionsCreator);\n }\n\n /**\n * @dev Creates a permission that wasn't previously set. Access is limited by the ACL.\n * If a created permission is removed it is possible to reset it with createPermission.\n * @notice Create a new permission granting `_entity` the ability to perform actions of role `_role` on `_app` (setting `_manager` as the permission manager)\n * @param _entity Address of the whitelisted entity that will be able to perform the role\n * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)\n * @param _role Identifier for the group of actions in app given access to perform\n * @param _manager Address of the entity that will be able to grant and revoke the permission further.\n */\n function createPermission(address _entity, address _app, bytes32 _role, address _manager) external {\n require(hasPermission(msg.sender, address(this), CREATE_PERMISSIONS_ROLE));\n\n _createPermission(_entity, _app, _role, _manager);\n }\n\n /**\n * @dev Grants permission if allowed. This requires `msg.sender` to be the permission manager\n * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app`\n * @param _entity Address of the whitelisted entity that will be able to perform the role\n * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)\n * @param _role Identifier for the group of actions in app given access to perform\n */\n function grantPermission(address _entity, address _app, bytes32 _role)\n external\n {\n grantPermissionP(_entity, _app, _role, new uint256[](0));\n }\n\n /**\n * @dev Grants a permission with parameters if allowed. This requires `msg.sender` to be the permission manager\n * @notice Grants `_entity` the ability to perform actions of role `_role` on `_app`\n * @param _entity Address of the whitelisted entity that will be able to perform the role\n * @param _app Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)\n * @param _role Identifier for the group of actions in app given access to perform\n * @param _params Permission parameters\n */\n function grantPermissionP(address _entity, address _app, bytes32 _role, uint256[] _params)\n onlyPermissionManager(_app, _role)\n public\n {\n require(!hasPermission(_entity, _app, _role));\n\n bytes32 paramsHash = _params.length > 0 ? _saveParams(_params) : EMPTY_PARAM_HASH;\n _setPermission(_entity, _app, _role, paramsHash);\n }\n\n /**\n * @dev Revokes permission if allowed. This requires `msg.sender` to be the the permission manager\n * @notice Revokes `_entity` the ability to perform actions of role `_role` on `_app`\n * @param _entity Address of the whitelisted entity to revoke access from\n * @param _app Address of the app in which the role will be revoked\n * @param _role Identifier for the group of actions in app being revoked\n */\n function revokePermission(address _entity, address _app, bytes32 _role)\n onlyPermissionManager(_app, _role)\n external\n {\n require(hasPermission(_entity, _app, _role));\n\n _setPermission(_entity, _app, _role, bytes32(0));\n }\n\n /**\n * @notice Sets `_newManager` as the manager of the permission `_role` in `_app`\n * @param _newManager Address for the new manager\n * @param _app Address of the app in which the permission management is being transferred\n * @param _role Identifier for the group of actions being transferred\n */\n function setPermissionManager(address _newManager, address _app, bytes32 _role)\n onlyPermissionManager(_app, _role)\n external\n {\n _setPermissionManager(_newManager, _app, _role);\n }\n\n /**\n * @dev Get manager for permission\n * @param _app Address of the app\n * @param _role Identifier for a group of actions in app\n * @return address of the manager for the permission\n */\n function getPermissionManager(address _app, bytes32 _role) public view returns (address) {\n return permissionManager[roleHash(_app, _role)];\n }\n\n /**\n * @dev Function called by apps to check ACL on kernel or to check permission statu\n * @param _who Sender of the original call\n * @param _where Address of the app\n * @param _where Identifier for a group of actions in app\n * @param _how Permission parameters\n * @return boolean indicating whether the ACL allows the role or not\n */\n function hasPermission(address _who, address _where, bytes32 _what, bytes memory _how) public view returns (bool) {\n uint256[] memory how;\n uint256 intsLength = _how.length / 32;\n assembly {\n how := _how // forced casting\n mstore(how, intsLength)\n }\n // _how is invalid from this point fwd\n return hasPermission(_who, _where, _what, how);\n }\n\n function hasPermission(address _who, address _where, bytes32 _what, uint256[] memory _how) public view returns (bool) {\n bytes32 whoParams = permissions[permissionHash(_who, _where, _what)];\n if (whoParams != bytes32(0) && evalParams(whoParams, _who, _where, _what, _how)) {\n return true;\n }\n\n bytes32 anyParams = permissions[permissionHash(ANY_ENTITY, _where, _what)];\n if (anyParams != bytes32(0) && evalParams(anyParams, ANY_ENTITY, _where, _what, _how)) {\n return true;\n }\n\n return false;\n }\n\n function hasPermission(address _who, address _where, bytes32 _what) public view returns (bool) {\n uint256[] memory empty = new uint256[](0);\n return hasPermission(_who, _where, _what, empty);\n }\n\n /**\n * @dev Internal createPermission for access inside the kernel (on instantiation)\n */\n function _createPermission(address _entity, address _app, bytes32 _role, address _manager) internal {\n // only allow permission creation (or re-creation) when there is no manager\n require(getPermissionManager(_app, _role) == address(0));\n\n _setPermission(_entity, _app, _role, EMPTY_PARAM_HASH);\n _setPermissionManager(_manager, _app, _role);\n }\n\n /**\n * @dev Internal function called to actually save the permission\n */\n function _setPermission(address _entity, address _app, bytes32 _role, bytes32 _paramsHash) internal {\n permissions[permissionHash(_entity, _app, _role)] = _paramsHash;\n\n SetPermission(_entity, _app, _role, _paramsHash != bytes32(0));\n }\n\n function _saveParams(uint256[] _encodedParams) internal returns (bytes32) {\n bytes32 paramHash = keccak256(_encodedParams);\n Param[] storage params = permissionParams[paramHash];\n\n if (params.length == 0) { // params not saved before\n for (uint256 i = 0; i < _encodedParams.length; i++) {\n uint256 encodedParam = _encodedParams[i];\n Param memory param = Param(decodeParamId(encodedParam), decodeParamOp(encodedParam), uint240(encodedParam));\n params.push(param);\n }\n }\n\n return paramHash;\n }\n\n function evalParams(\n bytes32 _paramsHash,\n address _who,\n address _where,\n bytes32 _what,\n uint256[] _how\n ) internal view returns (bool)\n {\n if (_paramsHash == EMPTY_PARAM_HASH) {\n return true;\n }\n\n return evalParam(_paramsHash, 0, _who, _where, _what, _how);\n }\n\n function evalParam(\n bytes32 _paramsHash,\n uint32 _paramId,\n address _who,\n address _where,\n bytes32 _what,\n uint256[] _how\n ) internal view returns (bool)\n {\n if (_paramId >= permissionParams[_paramsHash].length) {\n return false; // out of bounds\n }\n\n Param memory param = permissionParams[_paramsHash][_paramId];\n\n if (param.id == LOGIC_OP_PARAM_ID) {\n return evalLogic(param, _paramsHash, _who, _where, _what, _how);\n }\n\n uint256 value;\n uint256 comparedTo = uint256(param.value);\n\n // get value\n if (param.id == ORACLE_PARAM_ID) {\n value = ACLOracle(param.value).canPerform(_who, _where, _what) ? 1 : 0;\n comparedTo = 1;\n } else if (param.id == BLOCK_NUMBER_PARAM_ID) {\n value = blockN();\n } else if (param.id == TIMESTAMP_PARAM_ID) {\n value = time();\n } else if (param.id == SENDER_PARAM_ID) {\n value = uint256(msg.sender);\n } else if (param.id == PARAM_VALUE_PARAM_ID) {\n value = uint256(param.value);\n } else {\n if (param.id >= _how.length) {\n return false;\n }\n value = uint256(uint240(_how[param.id])); // force lost precision\n }\n\n if (Op(param.op) == Op.RET) {\n return uint256(value) > 0;\n }\n\n return compare(value, Op(param.op), comparedTo);\n }\n\n function evalLogic(Param _param, bytes32 _paramsHash, address _who, address _where, bytes32 _what, uint256[] _how) internal view returns (bool) {\n if (Op(_param.op) == Op.IF_ELSE) {\n var (condition, success, failure) = decodeParamsList(uint256(_param.value));\n bool result = evalParam(_paramsHash, condition, _who, _where, _what, _how);\n\n return evalParam(_paramsHash, result ? success : failure, _who, _where, _what, _how);\n }\n\n var (v1, v2,) = decodeParamsList(uint256(_param.value));\n bool r1 = evalParam(_paramsHash, v1, _who, _where, _what, _how);\n\n if (Op(_param.op) == Op.NOT) {\n return !r1;\n }\n\n if (r1 && Op(_param.op) == Op.OR) {\n return true;\n }\n\n if (!r1 && Op(_param.op) == Op.AND) {\n return false;\n }\n\n bool r2 = evalParam(_paramsHash, v2, _who, _where, _what, _how);\n\n if (Op(_param.op) == Op.XOR) {\n return (r1 && !r2) || (!r1 && r2);\n }\n\n return r2; // both or and and depend on result of r2 after checks\n }\n\n function compare(uint256 _a, Op _op, uint256 _b) internal pure returns (bool) {\n if (_op == Op.EQ) return _a == _b; // solium-disable-line lbrace\n if (_op == Op.NEQ) return _a != _b; // solium-disable-line lbrace\n if (_op == Op.GT) return _a > _b; // solium-disable-line lbrace\n if (_op == Op.LT) return _a < _b; // solium-disable-line lbrace\n if (_op == Op.GTE) return _a >= _b; // solium-disable-line lbrace\n if (_op == Op.LTE) return _a <= _b; // solium-disable-line lbrace\n return false;\n }\n\n /**\n * @dev Internal function that sets management\n */\n function _setPermissionManager(address _newManager, address _app, bytes32 _role) internal {\n permissionManager[roleHash(_app, _role)] = _newManager;\n ChangePermissionManager(_app, _role, _newManager);\n }\n\n function roleHash(address _where, bytes32 _what) pure internal returns (bytes32) {\n return keccak256(uint256(1), _where, _what);\n }\n\n function permissionHash(address _who, address _where, bytes32 _what) pure internal returns (bytes32) {\n return keccak256(uint256(2), _who, _where, _what);\n }\n\n function time() internal view returns (uint64) { return uint64(block.timestamp); } // solium-disable-line security/no-block-members\n\n function blockN() internal view returns (uint256) { return block.number; }\n}\n" - }, - "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { - "keccak256": "0xd2b72c173913aa2b869e6185843e3796e0532b9744a10fdf0ac7ec532e5b0fff", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/EVMScriptRegistry.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"./ScriptHelpers.sol\";\nimport \"./IEVMScriptExecutor.sol\";\nimport \"./IEVMScriptRegistry.sol\";\n\nimport \"../apps/AragonApp.sol\";\n\n\ncontract EVMScriptRegistry is IEVMScriptRegistry, EVMScriptRegistryConstants, AragonApp {\n using ScriptHelpers for bytes;\n\n // WARN: Manager can censor all votes and the like happening in an org\n bytes32 constant public REGISTRY_MANAGER_ROLE = bytes32(1);\n\n struct ExecutorEntry {\n address executor;\n bool enabled;\n }\n\n ExecutorEntry[] public executors;\n\n function initialize() onlyInit public {\n initialized();\n // Create empty record to begin executor IDs at 1\n executors.push(ExecutorEntry(address(0), false));\n }\n\n function addScriptExecutor(address _executor) external auth(REGISTRY_MANAGER_ROLE) returns (uint id) {\n return executors.push(ExecutorEntry(_executor, true));\n }\n\n function disableScriptExecutor(uint256 _executorId) external auth(REGISTRY_MANAGER_ROLE) {\n executors[_executorId].enabled = false;\n }\n\n function getScriptExecutor(bytes _script) public view returns (address) {\n uint256 id = _script.getSpecId();\n\n if (id == 0 || id >= executors.length) {\n return address(0);\n }\n\n ExecutorEntry storage entry = executors[id];\n return entry.enabled ? entry.executor : address(0);\n }\n}\n" - }, - "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { - "keccak256": "0x72ff2681f5dfec19b05d235d841042a78a4682a8368e6bb16516447495161014", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/executors/CallsScript.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n// Inspired by https://github.com/reverendus/tx-manager\n\nimport \"../ScriptHelpers.sol\";\nimport \"../IEVMScriptExecutor.sol\";\n\n\ncontract CallsScript is IEVMScriptExecutor {\n using ScriptHelpers for bytes;\n\n uint256 constant internal SCRIPT_START_LOCATION = 4;\n\n event LogScriptCall(address indexed sender, address indexed src, address indexed dst);\n\n /**\n * @notice Executes a number of call scripts\n * @param _script [ specId (uint32) ] many calls with this structure ->\n * [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]\n * @param _input Input is ignored in callscript\n * @param _blacklist Addresses the script cannot call to, or will revert.\n * @return always returns empty byte array\n */\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n uint256 location = SCRIPT_START_LOCATION; // first 32 bits are spec id\n while (location < _script.length) {\n address contractAddress = _script.addressAt(location);\n // Check address being called is not blacklist\n for (uint i = 0; i < _blacklist.length; i++) {\n require(contractAddress != _blacklist[i]);\n }\n\n // logged before execution to ensure event ordering in receipt\n // if failed entire execution is reverted regardless\n LogScriptCall(msg.sender, address(this), contractAddress);\n\n uint256 calldataLength = uint256(_script.uint32At(location + 0x14));\n uint256 calldataStart = _script.locationOf(location + 0x14 + 0x04);\n\n assembly {\n let success := call(sub(gas, 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0)\n switch success case 0 { revert(0, 0) }\n }\n\n location += (0x14 + 0x04 + calldataLength);\n }\n }\n}" - }, - "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { - "keccak256": "0x1f29ea7d6d6f912b392f3fc4b9dad4cfbe5f2133fbdf21e8233a999a6726858a", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/executors/DelegateScript.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"../ScriptHelpers.sol\";\nimport \"../IEVMScriptExecutor.sol\";\n\n\ninterface DelegateScriptTarget {\n function exec() public;\n}\n\n\ncontract DelegateScript is IEVMScriptExecutor {\n using ScriptHelpers for *;\n\n uint256 constant internal SCRIPT_START_LOCATION = 4;\n\n /**\n * @notice Executes script by delegatecall into a contract\n * @param _script [ specId (uint32) ][ contract address (20 bytes) ]\n * @param _input ABI encoded call to be made to contract (if empty executes default exec() function)\n * @param _blacklist If any address is passed, will revert.\n * @return Call return data\n */\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n require(_blacklist.length == 0); // dont have ability to control bans, so fail.\n\n // Script should be spec id + address (20 bytes)\n require(_script.length == SCRIPT_START_LOCATION + 20);\n return delegate(_script.addressAt(SCRIPT_START_LOCATION), _input);\n }\n\n /**\n * @dev Delegatecall to contract with input data\n */\n function delegate(address _addr, bytes memory _input) internal returns (bytes memory output) {\n require(isContract(_addr));\n require(_addr.delegatecall(_input.length > 0 ? _input : defaultInput()));\n return returnedData();\n }\n\n function isContract(address _target) internal view returns (bool) {\n uint256 size;\n assembly { size := extcodesize(_target) }\n return size > 0;\n }\n\n function defaultInput() internal pure returns (bytes) {\n return DelegateScriptTarget(0).exec.selector.toBytes();\n }\n\n /**\n * @dev copies and returns last's call data\n */\n function returnedData() internal view returns (bytes ret) {\n assembly {\n let size := returndatasize\n ret := mload(0x40) // free mem ptr get\n mstore(0x40, add(ret, add(size, 0x20))) // free mem ptr set\n mstore(ret, size) // set array length\n returndatacopy(add(ret, 0x20), 0, size) // copy return data\n }\n return ret;\n }\n}" - }, - "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { - "keccak256": "0x664ae058059e6b64e38a2f0c56c4c1603de64de56270fab1992cf64d721f1233", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"./DelegateScript.sol\";\n\n// Inspired by: https://github.com/dapphub/ds-proxy/blob/master/src/proxy.sol\n\n\ncontract DeployDelegateScript is DelegateScript {\n uint256 constant internal SCRIPT_START_LOCATION = 4;\n\n mapping (bytes32 => address) cache;\n\n /**\n * @notice Executes script by delegatecall into a deployed contract (exec() function)\n * @param _script [ specId (uint32) ][ contractInitcode (bytecode) ]\n * @param _input ABI encoded call to be made to contract (if empty executes default exec() function)\n * @param _blacklist If any address is passed, will revert.\n * @return Call return data\n */\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n require(_blacklist.length == 0); // dont have ability to control bans, so fail.\n\n bytes32 id = keccak256(_script);\n address deployed = cache[id];\n if (deployed == address(0)) {\n deployed = deploy(_script);\n cache[id] = deployed;\n }\n\n return DelegateScript.delegate(deployed, _input);\n }\n\n /**\n * @dev Deploys contract byte code to network\n */\n function deploy(bytes _script) internal returns (address addr) {\n assembly {\n // 0x24 = 0x20 (length) + 0x04 (spec id uint32)\n // Length of code is 4 bytes less than total script size\n addr := create(0, add(_script, 0x24), sub(mload(_script), 0x04))\n switch iszero(extcodesize(addr))\n case 1 { revert(0, 0) } // throw if contract failed to deploy\n }\n }\n}" - }, - "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { - "keccak256": "0x591ccf2f0ddfc70935e736bd0072b7319d07f29fa1d46a4f18231d6aa40781fa", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"../evmscript/EVMScriptRegistry.sol\";\n\nimport \"../evmscript/executors/CallsScript.sol\";\nimport \"../evmscript/executors/DelegateScript.sol\";\nimport \"../evmscript/executors/DeployDelegateScript.sol\";\n\nimport \"./AppProxyFactory.sol\";\nimport \"../kernel/Kernel.sol\";\nimport \"../acl/ACL.sol\";\n\n\ncontract EVMScriptRegistryFactory is AppProxyFactory, EVMScriptRegistryConstants {\n address public baseReg;\n address public baseCalls;\n address public baseDel;\n address public baseDeployDel;\n\n function EVMScriptRegistryFactory() public {\n baseReg = address(new EVMScriptRegistry());\n baseCalls = address(new CallsScript());\n baseDel = address(new DelegateScript());\n baseDeployDel = address(new DeployDelegateScript());\n }\n\n function newEVMScriptRegistry(Kernel _dao, address _root) public returns (EVMScriptRegistry reg) {\n reg = EVMScriptRegistry(_dao.newPinnedAppInstance(EVMSCRIPT_REGISTRY_APP_ID, baseReg));\n reg.initialize();\n\n ACL acl = ACL(_dao.acl());\n\n _dao.setApp(_dao.APP_ADDR_NAMESPACE(), EVMSCRIPT_REGISTRY_APP_ID, reg);\n acl.createPermission(this, reg, reg.REGISTRY_MANAGER_ROLE(), this);\n\n reg.addScriptExecutor(baseCalls); // spec 1 = CallsScript\n reg.addScriptExecutor(baseDel); // spec 2 = DelegateScript\n reg.addScriptExecutor(baseDeployDel); // spec 3 = DeployDelegateScript\n\n acl.revokePermission(this, reg, reg.REGISTRY_MANAGER_ROLE());\n acl.setPermissionManager(_root, reg, reg.REGISTRY_MANAGER_ROLE());\n\n return reg;\n }\n}\n" - }, - "@aragon/os/contracts/factory/DAOFactory.sol": { - "keccak256": "0x60585270378bc1c725befb3449f4c48a744155bdf8fc659b7a72964247d36b78", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/node_modules/@aragon/os/contracts/factory/DAOFactory.sol" - ], - "content": "pragma solidity 0.4.18;\n\nimport \"../kernel/Kernel.sol\";\nimport \"../kernel/KernelProxy.sol\";\n\nimport \"../acl/ACL.sol\";\n\nimport \"./EVMScriptRegistryFactory.sol\";\n\n\ncontract DAOFactory {\n address public baseKernel;\n address public baseACL;\n EVMScriptRegistryFactory public regFactory;\n\n event DeployDAO(address dao);\n event DeployEVMScriptRegistry(address reg);\n\n function DAOFactory(address _regFactory) public {\n // No need to init as it cannot be killed by devops199\n baseKernel = address(new Kernel());\n baseACL = address(new ACL());\n\n if (_regFactory != address(0)) {\n regFactory = EVMScriptRegistryFactory(_regFactory);\n }\n }\n\n /**\n * @param _root Address that will be granted control to setup DAO permissions\n */\n function newDAO(address _root) public returns (Kernel dao) {\n dao = Kernel(new KernelProxy(baseKernel));\n\n address initialRoot = address(regFactory) != address(0) ? this : _root;\n dao.initialize(baseACL, initialRoot);\n\n ACL acl = ACL(dao.acl());\n\n if (address(regFactory) != address(0)) {\n bytes32 permRole = acl.CREATE_PERMISSIONS_ROLE();\n bytes32 appManagerRole = dao.APP_MANAGER_ROLE();\n\n acl.grantPermission(regFactory, acl, permRole);\n\n acl.createPermission(regFactory, dao, appManagerRole, this);\n\n EVMScriptRegistry reg = regFactory.newEVMScriptRegistry(dao, _root);\n DeployEVMScriptRegistry(address(reg));\n\n acl.revokePermission(regFactory, dao, appManagerRole);\n acl.grantPermission(_root, acl, permRole);\n\n acl.setPermissionManager(address(0), dao, appManagerRole);\n acl.setPermissionManager(_root, acl, permRole);\n }\n\n DeployDAO(dao);\n }\n}" - }, - "./contracts/LPVault.sol": { - "keccak256": "0x1073bd4b8d127d13b4d9cc150f97bd87a5d6e6a9cf08e753b73758c8e8d54bda", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/LPVault.sol" - ], - "content": "pragma solidity ^0.4.18;\n\n/*\n Copyright 2017, Jordi Baylina\n Contributors: RJ Ewing, Griff Green, Arthur Lunn\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n*/\n\n/// @dev This contract holds ether securely for liquid pledging systems; for\n/// this iteration the funds will come often be escaped to the Giveth Multisig\n/// (safety precaution), but once fully tested and optimized this contract will\n/// be a safe place to store funds equipped with optional variable time delays\n/// to allow for an optional escapeHatch to be implemented in case of issues;\n/// future versions of this contract will be enabled for tokens\nimport \"./EscapableApp.sol\";\nimport \"./LiquidPledgingACLHelpers.sol\";\nimport \"giveth-common-contracts/contracts/ERC20.sol\";\n\n/// @dev `LiquidPledging` is a basic interface to allow the `LPVault` contract\n/// to confirm and cancel payments in the `LiquidPledging` contract.\ncontract ILiquidPledging {\n function confirmPayment(uint64 idPledge, uint amount) public;\n function cancelPayment(uint64 idPledge, uint amount) public;\n}\n\n/// @dev `LPVault` is a higher level contract built off of the `Escapable`\n/// contract that holds funds for the liquid pledging system.\ncontract LPVault is EscapableApp, LiquidPledgingACLHelpers {\n\n bytes32 constant public CONFIRM_PAYMENT_ROLE = keccak256(\"CONFIRM_PAYMENT_ROLE\");\n bytes32 constant public CANCEL_PAYMENT_ROLE = keccak256(\"CANCEL_PAYMENT_ROLE\");\n bytes32 constant public SET_AUTOPAY_ROLE = keccak256(\"SET_AUTOPAY_ROLE\");\n\n event AutoPaySet(bool autoPay);\n event EscapeFundsCalled(address token, uint amount);\n event ConfirmPayment(uint indexed idPayment, bytes32 indexed ref);\n event CancelPayment(uint indexed idPayment, bytes32 indexed ref);\n event AuthorizePayment(\n uint indexed idPayment,\n bytes32 indexed ref,\n address indexed dest,\n address token,\n uint amount\n );\n\n enum PaymentStatus {\n Pending, // When the payment is awaiting confirmation\n Paid, // When the payment has been sent\n Canceled // When the payment will never be sent\n }\n\n /// @dev `Payment` is a public structure that describes the details of\n /// each payment the `ref` param makes it easy to track the movements of\n /// funds transparently by its connection to other `Payment` structs\n struct Payment {\n bytes32 ref; // an input that references details from other contracts\n address dest; // recipient of the ETH\n PaymentStatus state; // Pending, Paid or Canceled\n address token;\n uint amount; // amount of ETH (in wei) to be sent\n }\n\n bool public autoPay; // If false, payments will take 2 txs to be completed\n\n // @dev An array that contains all the payments for this LPVault\n Payment[] public payments;\n ILiquidPledging public liquidPledging;\n\n /// @dev The attached `LiquidPledging` contract is the only address that can\n /// call a function with this modifier\n modifier onlyLiquidPledging() {\n require(msg.sender == address(liquidPledging));\n _;\n }\n\n function LPVault(address _escapeHatchDestination) EscapableApp(_escapeHatchDestination) public {\n }\n\n function initialize(address _escapeHatchDestination) onlyInit public {\n require(false); // overload the EscapableApp\n _escapeHatchDestination;\n }\n\n /// @param _liquidPledging \n /// @param _escapeHatchDestination The address of a safe location (usu a\n /// Multisig) to send the ether held in this contract; if a neutral address\n /// is required, the WHG Multisig is an option:\n /// 0x8Ff920020c8AD673661c8117f2855C384758C572 \n function initialize(address _liquidPledging, address _escapeHatchDestination) onlyInit external {\n super.initialize(_escapeHatchDestination);\n\n require(_liquidPledging != 0x0);\n liquidPledging = ILiquidPledging(_liquidPledging);\n }\n\n /// @notice Used to decentralize, toggles whether the LPVault will\n /// automatically confirm a payment after the payment has been authorized\n /// @param _automatic If true, payments will confirm instantly, if false\n /// the training wheels are put on and the owner must manually approve \n /// every payment\n function setAutopay(bool _automatic) external authP(SET_AUTOPAY_ROLE, arr(_automatic)) {\n autoPay = _automatic;\n AutoPaySet(autoPay);\n }\n\n /// @notice If `autoPay == true` the transfer happens automatically `else` the `owner`\n /// must call `confirmPayment()` for a transfer to occur (training wheels);\n /// either way, a new payment is added to `payments[]` \n /// @param _ref References the payment will normally be the pledgeID\n /// @param _dest The address that payments will be sent to\n /// @param _amount The amount that the payment is being authorized for\n /// @return idPayment The id of the payment (needed by the owner to confirm)\n function authorizePayment(\n bytes32 _ref,\n address _dest,\n address _token,\n uint _amount\n ) external onlyLiquidPledging returns (uint)\n {\n uint idPayment = payments.length;\n payments.length ++;\n payments[idPayment].state = PaymentStatus.Pending;\n payments[idPayment].ref = _ref;\n payments[idPayment].dest = _dest;\n payments[idPayment].token = _token;\n payments[idPayment].amount = _amount;\n\n AuthorizePayment(idPayment, _ref, _dest, _token, _amount);\n\n if (autoPay) {\n _doConfirmPayment(idPayment);\n }\n\n return idPayment;\n }\n\n /// @notice Allows the owner to confirm payments; since \n /// `authorizePayment` is the only way to populate the `payments[]` array\n /// this is generally used when `autopay` is `false` after a payment has\n /// has been authorized\n /// @param _idPayment Array lookup for the payment.\n function confirmPayment(uint _idPayment) public {\n Payment storage p = payments[_idPayment];\n require(canPerform(msg.sender, CONFIRM_PAYMENT_ROLE, arr(_idPayment, p.amount)));\n _doConfirmPayment(_idPayment);\n }\n\n /// @notice When `autopay` is `false` and after a payment has been authorized\n /// to allow the owner to cancel a payment instead of confirming it.\n /// @param _idPayment Array lookup for the payment.\n function cancelPayment(uint _idPayment) external {\n _doCancelPayment(_idPayment);\n }\n\n /// @notice `onlyOwner` An efficient way to confirm multiple payments\n /// @param _idPayments An array of multiple payment ids\n function multiConfirm(uint[] _idPayments) external {\n for (uint i = 0; i < _idPayments.length; i++) {\n confirmPayment(_idPayments[i]);\n }\n }\n\n /// @notice `onlyOwner` An efficient way to cancel multiple payments\n /// @param _idPayments An array of multiple payment ids\n function multiCancel(uint[] _idPayments) external {\n for (uint i = 0; i < _idPayments.length; i++) {\n _doCancelPayment(_idPayments[i]);\n }\n }\n\n /// Transfer tokens to the escapeHatchDestination.\n /// Used as a safety mechanism to prevent the vault from holding too much value\n /// before being thoroughly battle-tested.\n /// @param _token to transfer\n /// @param _amount to transfer\n function escapeFunds(address _token, uint _amount) external authP(ESCAPE_HATCH_CALLER_ROLE, arr(_token)) {\n require(_token != 0x0);\n ERC20 token = ERC20(_token);\n require(token.transfer(escapeHatchDestination, _amount));\n EscapeFundsCalled(_token, _amount);\n }\n\n /// @return The total number of payments that have ever been authorized\n function nPayments() external view returns (uint) {\n return payments.length;\n }\n\n /// @notice Transfers ETH according to the data held within the specified\n /// payment id (internal function)\n /// @param _idPayment id number for the payment about to be fulfilled \n function _doConfirmPayment(uint _idPayment) internal {\n require(_idPayment < payments.length);\n Payment storage p = payments[_idPayment];\n require(p.state == PaymentStatus.Pending);\n\n p.state = PaymentStatus.Paid;\n liquidPledging.confirmPayment(uint64(p.ref), p.amount);\n\n ERC20 token = ERC20(p.token);\n require(token.transfer(p.dest, p.amount)); // Transfers token to dest\n\n ConfirmPayment(_idPayment, p.ref);\n }\n\n /// @notice Cancels a pending payment (internal function)\n /// @param _idPayment id number for the payment \n function _doCancelPayment(uint _idPayment) internal authP(CANCEL_PAYMENT_ROLE, arr(_idPayment)) {\n require(_idPayment < payments.length);\n Payment storage p = payments[_idPayment];\n require(p.state == PaymentStatus.Pending);\n\n p.state = PaymentStatus.Canceled;\n\n liquidPledging.cancelPayment(uint64(p.ref), p.amount);\n\n CancelPayment(_idPayment, p.ref);\n }\n}\n" - }, - "./contracts/test/TestSimpleProjectPlugin.sol": { - "keccak256": "0x85bd601cdc843e7e95cff6478ef9557424b6768148ddaa4c4c1aada19739b159", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleProjectPlugin.sol" - ], - "content": "pragma solidity ^0.4.11;\n\nimport \"../LiquidPledging.sol\";\n\n// simple liquidPledging plugin contract for testing whitelist\ncontract TestSimpleProjectPlugin {\n\n uint64 public idProject;\n bool initPending;\n\n event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n\n function TestSimpleProjectPlugin() {\n require(msg.sender != tx.origin); // Avoids being created directly by mistake.\n initPending = true;\n }\n\n function init(\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 parentProject\n ) {\n require(initPending);\n idProject = liquidPledging.addProject(name, url, address(this), parentProject, 0, ILiquidPledgingPlugin(this));\n initPending = false;\n }\n\n function beforeTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external returns (uint maxAllowed) {\n require(!initPending);\n BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n function afterTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external {\n require(!initPending);\n AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n}\n" - }, - "./contracts/test/TestSimpleDelegatePlugin.sol": { - "keccak256": "0xbf3f85c43cc59d922946a49ba872a8b634210f2d2169111001429e31dab2638a", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleDelegatePlugin.sol" - ], - "content": "pragma solidity ^0.4.11;\n\nimport \"../LiquidPledging.sol\";\n\n// simple liquidPledging plugin contract for testing whitelist\ncontract TestSimpleDelegatePlugin {\n\n uint64 public idDelegate;\n LiquidPledging liquidPledging;\n bool initPending;\n\n event BeforeTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n event AfterTransfer(uint64 pledgeAdmin, uint64 pledgeFrom, uint64 pledgeTo, uint64 context, uint amount);\n\n function TestSimpleDelegatePlugin(LiquidPledging _liquidPledging) public {\n require(msg.sender != tx.origin); // Avoids being created directly by mistake.\n liquidPledging = _liquidPledging;\n initPending = true;\n }\n\n function init(\n string name,\n string url,\n uint64 commitTime\n ) public {\n require(initPending);\n idDelegate = liquidPledging.addDelegate(name, url, commitTime, ILiquidPledgingPlugin(this));\n initPending = false;\n }\n\n function beforeTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external returns (uint maxAllowed) {\n require(!initPending);\n BeforeTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n function afterTransfer(\n uint64 pledgeAdmin,\n uint64 pledgeFrom,\n uint64 pledgeTo,\n uint64 context,\n uint amount\n ) external {\n require(!initPending);\n AfterTransfer(pledgeAdmin, pledgeFrom, pledgeTo, context, amount);\n }\n\n}\n\ncontract TestSimpleDelegatePluginFactory {\n\n function TestSimpleDelegatePluginFactory(\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 commitTime\n ) public {\n TestSimpleDelegatePlugin d = new TestSimpleDelegatePlugin(liquidPledging);\n d.init(name, url, commitTime);\n }\n\n}\n" - }, - "./contracts/test/TestSimpleProjectPluginFactory.sol": { - "keccak256": "0xbcc89d661b95cba0601d86d2472adeebcfd45c8f69a45cc2ec91bba2605a7b08", - "urls": [ - "file:///Users/rjewing/code/giveth/liquidpledging/contracts/test/TestSimpleProjectPluginFactory.sol" - ], - "content": "pragma solidity ^0.4.11;\n\nimport \"./TestSimpleProjectPlugin.sol\";\nimport \"../LiquidPledging.sol\";\n\n// simple factory for deploying TestSimpleProjectPlugin.sol contract\ncontract TestSimpleProjectPluginFactory {\n\n function deploy(\n LiquidPledging liquidPledging,\n string name,\n string url,\n uint64 parentProject\n ) {\n TestSimpleProjectPlugin p = new TestSimpleProjectPlugin();\n p.init(liquidPledging, name, url, parentProject);\n }\n\n}\n" - } - }, - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "useLiteralContent": true - }, - "outputSelection": { - "*": { - "*": [ - "metadata", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "abi", - "evm.methodIdentifiers", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - } - } -} \ No newline at end of file diff --git a/build/solcStandardOutput.json b/build/solcStandardOutput.json deleted file mode 100644 index b29bcda..0000000 --- a/build/solcStandardOutput.json +++ /dev/null @@ -1,13838 +0,0 @@ -{ - "contracts": { - "./contracts/EscapableApp.sol": { - "EscapableApp": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "isTokenEscapable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "escapeHatch", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ESCAPE_HATCH_CALLER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "escapeHatchDestination", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - } - ], - "name": "EscapeHatchBlackistedToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "EscapeHatchCalled", - "type": "event" - } - ], - "devdoc": { - "methods": { - "escapeHatch(address)": { - "params": { - "_token": "to transfer, use 0x0 for ether" - } - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "initialize(address)": { - "params": { - "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 " - } - }, - "isTokenEscapable(address)": { - "params": { - "_token": "the token address being queried" - }, - "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b604051602080610ad983398101604052808051915061003c90508164010000000061085661004282021704565b506100b9565b6100576401000000006109b561008e82021704565b600160a060020a038116151561006c57600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b6003541561009b57600080fd5b6100b06401000000006109cf6100b582021704565b600355565b4390565b610a11806100c86000396000f3006060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029", - "sourceMap": "1201:2912:0:-;;;1737:109;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1809:30:0;;-1:-1:-1;1737:109:0;1809:5;;;;;;:30;:::i;:::-;1737:109;1201:2912;;3449:195;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1201:2912:0:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100a05763ffffffff60e060020a60003504166360b1e05781146100a557806380afdea8146100ca578063892db057146100dd5780638b3dd749146101105780639b3fdf4c14610123578063a142d60814610136578063a1658fad14610157578063b09927a1146101ba578063c4d66de8146101cd578063d4aae0c4146101ec578063f5b612301461021b578063f92a79ff1461022e575b600080fd5b34156100b057600080fd5b6100b861027f565b60405190815260200160405180910390f35b34156100d557600080fd5b6100b86102b3565b34156100e857600080fd5b6100fc600160a060020a03600435166102b9565b604051901515815260200160405180910390f35b341561011b57600080fd5b6100b86102d8565b341561012e57600080fd5b6100b86102de565b341561014157600080fd5b610155600160a060020a036004351661035a565b005b341561016257600080fd5b6100fc60048035600160a060020a03169060248035919060649060443590810190830135806020808202016040519081016040528093929190818152602001838360200280828437509496506105b195505050505050565b34156101c557600080fd5b6100b86106ef565b34156101d857600080fd5b610155600160a060020a0360043516610723565b34156101f757600080fd5b6101ff61073c565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b6101ff61074b565b341561023957600080fd5b6101ff60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061075a95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061039784610836565b6103a23383836105b1565b15156103ad57600080fd5b600160a060020a03851660009081526065602052604090205460ff16156103d357600080fd5b600160a060020a038516151561046557606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f19350505050151561041c57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a16105aa565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156104bf57600080fd5b6102c65a03f115156104d057600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561053f57600080fd5b6102c65a03f1151561055057600080fd5b50505060405180519050151561056557600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b60006105bb6109d3565b600080845111156105d457835160200290508391508082525b600054600160a060020a031615806106e5575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561067b578082015183820152602001610663565b50505050905090810190601f1680156106a85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156106c957600080fd5b6102c65a03f115156106da57600080fd5b505050604051805190505b9695505050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6003541561073057600080fd5b61073981610856565b50565b600054600160a060020a031681565b606454600160a060020a031681565b60006107646108a2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107cb5780820151838201526020016107b3565b50505050905090810190601f1680156107f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561081657600080fd5b6102c65a03f1151561082757600080fd5b50505060405180519392505050565b61083e6109d3565b61085082600160a060020a031661096e565b92915050565b61085e6109b5565b600160a060020a038116151561087357600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561081657600080fd5b6109766109d3565b60016040518059106109855750595b9080825280602002602001820160405250905081816000815181106109a657fe5b60209081029091010152919050565b600354156109c257600080fd5b6109ca6109cf565b600355565b4390565b602060405190810160405260008152905600a165627a7a7230582087ca72c7b6a9abd5cdf5a8c17d701eaa147c9e56b6e7d73ee52f697b9ea841850029", - "sourceMap": "1201:2912:0:-;;;;;;;;;-1:-1:-1;;;1201:2912:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;;;;;;;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1330:88:0;;;;;;;;;;;;2116:116;;;;;;;;;;-1:-1:-1;;;;;2116:116:0;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;492:1:23;2440:626:0;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;2116:116::-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;:::-;2116:116;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:17;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1201:2912:0:-;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "515400", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "ESCAPE_HATCH_CALLER_ROLE()": "462", - "EVMSCRIPT_REGISTRY_APP()": "573", - "EVMSCRIPT_REGISTRY_APP_ID()": "308", - "appId()": "458", - "canPerform(address,bytes32,uint256[])": "infinite", - "escapeHatch(address)": "infinite", - "escapeHatchDestination()": "809", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "502", - "initialize(address)": "41382", - "isTokenEscapable(address)": "717", - "kernel()": "787" - }, - "internal": { - "_blacklistEscapeToken(address)": "infinite", - "_init(address)": "40697" - } - }, - "methodIdentifiers": { - "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "escapeHatch(address)": "a142d608", - "escapeHatchDestination()": "f5b61230", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "initialize(address)": "c4d66de8", - "isTokenEscapable(address)": "892db057", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": { - "escapeHatch(address)": { - "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" - }, - "isTokenEscapable(address)": { - "notice": "Checks to see if `_token` is in the blacklist of tokens" - } - } - } - } - }, - "./contracts/ILiquidPledgingPlugin.sol": { - "ILiquidPledgingPlugin": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "pledgeManager", - "type": "uint64" - }, - { - "name": "pledgeFrom", - "type": "uint64" - }, - { - "name": "pledgeTo", - "type": "uint64" - }, - { - "name": "context", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "afterTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgeManager", - "type": "uint64" - }, - { - "name": "pledgeFrom", - "type": "uint64" - }, - { - "name": "pledgeTo", - "type": "uint64" - }, - { - "name": "context", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "beforeTransfer", - "outputs": [ - { - "name": "maxAllowed", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": { - "afterTransfer(uint64,uint64,uint64,uint64,address,uint256)": { - "params": { - "amount": "The amount of value that will be transfered.", - "context": "The situation that is triggering the plugin: 0 -> Plugin for the owner transferring pledge to another party 1 -> Plugin for the first delegate transferring pledge to another party 2 -> Plugin for the second delegate transferring pledge to another party ... 255 -> Plugin for the intendedProject transferring pledge to another party /// 256 -> Plugin for the owner receiving pledge to another party 257 -> Plugin for the first delegate receiving pledge to another party 258 -> Plugin for the second delegate receiving pledge to another party ... 511 -> Plugin for the intendedProject receiving pledge to another party", - "pledgeFrom": "This is the Id from which value will be transfered.", - "pledgeManager": "The admin or current manager of the pledge", - "pledgeTo": "This is the Id that value will be transfered to. " - } - }, - "beforeTransfer(uint64,uint64,uint64,uint64,address,uint256)": { - "params": { - "amount": "The amount of value that will be transfered.", - "context": "The situation that is triggering the plugin: 0 -> Plugin for the owner transferring pledge to another party 1 -> Plugin for the first delegate transferring pledge to another party 2 -> Plugin for the second delegate transferring pledge to another party ... 255 -> Plugin for the intendedProject transferring pledge to another party /// 256 -> Plugin for the owner receiving pledge to another party 257 -> Plugin for the first delegate receiving pledge to another party 258 -> Plugin for the second delegate receiving pledge to another party ... 511 -> Plugin for the intendedProject receiving pledge to another party", - "pledgeFrom": "This is the Id from which value will be transfered.", - "pledgeManager": "The admin or current manager of the pledge", - "pledgeTo": "This is the Id that value will be transfered to. " - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "afterTransfer(uint64,uint64,uint64,uint64,address,uint256)": "0da5e18c", - "beforeTransfer(uint64,uint64,uint64,uint64,address,uint256)": "31c51a00" - } - }, - "userdoc": { - "methods": { - "afterTransfer(uint64,uint64,uint64,uint64,address,uint256)": { - "notice": "Plugins are used (much like web hooks) to initiate an action upon any donation, delegation, or transfer; this is an optional feature and allows for extreme customization of the contract. This function implements any action that should be initiated after a transfer." - }, - "beforeTransfer(uint64,uint64,uint64,uint64,address,uint256)": { - "notice": "Plugins are used (much like web hooks) to initiate an action upon any donation, delegation, or transfer; this is an optional feature and allows for extreme customization of the contract. This function implements any action that should be initiated before a transfer." - } - } - } - } - }, - "./contracts/LPConstants.sol": { - "LPConstants": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "LP_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VAULT_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6103ea8061001e6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029", - "sourceMap": "83:175:2:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461009d578063178e6079146100c257806325012699146100d557806330744267146100e8578063756f6049146100fb578063a3b4b07f1461010e578063cbcc65eb14610121578063d2dd420f14610134578063db8a61d414610147575b600080fd5b34156100a857600080fd5b6100b061015a565b60405190815260200160405180910390f35b34156100cd57600080fd5b6100b061018e565b34156100e057600080fd5b6100b06101c2565b34156100f357600080fd5b6100b061023e565b341561010657600080fd5b6100b0610272565b341561011957600080fd5b6100b06102a6565b341561012c57600080fd5b6100b0610322565b341561013f57600080fd5b6100b0610356565b341561015257600080fd5b6100b061038a565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058200ec32a4f75b4df13b45d516179ebc2a84dba287232e7699a8d347f2704d293f70029", - "sourceMap": "83:175:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;192:63:2;;;;;;;;;;;;57:58:41;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:41;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "200400", - "executionCost": "240", - "totalCost": "200640" - }, - "external": { - "ACL_APP()": "532", - "ACL_APP_ID()": "377", - "APP_ADDR_NAMESPACE()": "267", - "APP_BASES_NAMESPACE()": "421", - "CORE_NAMESPACE()": "333", - "KERNEL_APP()": "466", - "KERNEL_APP_ID()": "245", - "LP_APP_ID()": "311", - "VAULT_APP_ID()": "399" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "LP_APP_ID()": "30744267", - "VAULT_APP_ID()": "d2dd420f" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "./contracts/LPFactory.sol": { - "LPFactory": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "baseACL", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lpBase", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_root", - "type": "address" - } - ], - "name": "newDAO", - "outputs": [ - { - "name": "dao", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "LP_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "regFactory", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "baseKernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_root", - "type": "address" - }, - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "newLP", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VAULT_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vaultBase", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_vaultBase", - "type": "address" - }, - { - "name": "_lpBase", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "vault", - "type": "address" - } - ], - "name": "DeployVault", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "liquidPledging", - "type": "address" - } - ], - "name": "DeployLiquidPledging", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "dao", - "type": "address" - } - ], - "name": "DeployDAO", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "reg", - "type": "address" - } - ], - "name": "DeployEVMScriptRegistry", - "type": "event" - } - ], - "devdoc": { - "methods": { - "newDAO(address)": { - "params": { - "_root": "Address that will be granted control to setup DAO permissions" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "606060405234156200001057600080fd5b6040516040806200531083398101604052808051919060200180519150600090506200003b62000132565b604051809103906000f08015156200005257600080fd5b60008054600160a060020a031916600160a060020a03929092169190911790556200007c62000143565b604051809103906000f08015156200009357600080fd5b60018054600160a060020a031916600160a060020a03928316179055811615620000d35760028054600160a060020a031916600160a060020a0383161790555b50600160a060020a0382161515620000ea57600080fd5b600160a060020a03811615156200010057600080fd5b60038054600160a060020a03938416600160a060020a0319918216179091556004805492909316911617905562000154565b604051611fdc8062001d4f83390190565b6040516115e58062003d2b83390190565b611beb80620001646000396000f3006060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd400296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "164:2353:3:-;;;369:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;443:1:3;;-1:-1:-1;521:12:36;;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:36;-1:-1:-1;;;;;500:34:36;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:36;-1:-1:-1;;;;;544:28:36;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:36;-1:-1:-1;;;;;628:50:36;;;;;583:106;-1:-1:-1;;;;;;464:15:3;;;;456:24;;;;;;-1:-1:-1;;;;;498:12:3;;;;490:21;;;;;;521:9;:22;;-1:-1:-1;;;;;521:22:3;;;-1:-1:-1;;;;;;521:22:3;;;;;;;553:6;:16;;;;;;;;;;;164:2353;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100cc5763ffffffff60e060020a600035041663086b339e81146100d15780631113ed0d14610100578063178e6079146101255780631cb671b114610138578063216874441461014b578063250126991461016a578063307442671461017d578063656362b514610190578063756f6049146101a3578063a3b4b07f146101b6578063b16dd130146101c9578063bce9b995146101dc578063cbcc65eb14610203578063d2dd420f14610216578063db8a61d414610229578063eeab49551461023c575b600080fd5b34156100dc57600080fd5b6100e461024f565b604051600160a060020a03909116815260200160405180910390f35b341561010b57600080fd5b61011361025e565b60405190815260200160405180910390f35b341561013057600080fd5b610113610292565b341561014357600080fd5b6100e46102c6565b341561015657600080fd5b6100e4600160a060020a03600435166102d5565b341561017557600080fd5b6101136108c1565b341561018857600080fd5b61011361093d565b341561019b57600080fd5b6100e4610971565b34156101ae57600080fd5b610113610980565b34156101c157600080fd5b6101136109b4565b34156101d457600080fd5b6100e4610a30565b34156101e757600080fd5b610201600160a060020a0360043581169060243516610a3f565b005b341561020e57600080fd5b610113610ef3565b341561022157600080fd5b610113610f27565b341561023457600080fd5b610113610f5b565b341561024757600080fd5b6100e4610f8f565b600154600160a060020a031681565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b600454600160a060020a031681565b6000805481908190819081908190600160a060020a03166102f46115e6565b600160a060020a039091168152602001604051809103906000f080151561031a57600080fd5b600254909650600160a060020a031615156103355786610337565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561039657600080fd5b6102c65a03f115156103a757600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103f057600080fd5b6102c65a03f1151561040157600080fd5b5050506040518051600254909550600160a060020a031615905061087a5783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561046557600080fd5b6102c65a03f1151561047657600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156104c757600080fd5b6102c65a03f115156104d857600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561054b57600080fd5b6102c65a03f1151561055c57600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105ce57600080fd5b6102c65a03f115156105df57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561064457600080fd5b6102c65a03f1151561065557600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561070557600080fd5b6102c65a03f1151561071657600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561077a57600080fd5b6102c65a03f1151561078b57600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156107f057600080fd5b6102c65a03f1151561080157600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561086557600080fd5b6102c65a03f1151561087657600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051809103902081565b600254600160a060020a031681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b600054600160a060020a031681565b6000806000806000610a50306102d5565b945084600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a9857600080fd5b6102c65a03f11515610aa957600080fd5b5050506040518051945050600160a060020a038516638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610afa57600080fd5b6102c65a03f11515610b0b57600080fd5b5050506040518051935050600160a060020a03841663be0384783087868260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b1515610b7f57600080fd5b6102c65a03f11515610b9057600080fd5b50505084600160a060020a03166380cd5ac36040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051908190039020600354600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610c2d57600080fd5b6102c65a03f11515610c3e57600080fd5b5050506040518051925050600160a060020a0385166380cd5ac36040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e01604051908190039020600454600160a060020a031660006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b1515610ce357600080fd5b6102c65a03f11515610cf457600080fd5b5050506040518051915050600160a060020a03821663485cc955828860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610d5557600080fd5b6102c65a03f11515610d6657600080fd5b50505080600160a060020a031663485cc955838860405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050600160a060020a03851663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e1f57600080fd5b6102c65a03f11515610e3057600080fd5b505050604051805190506040517f6c6971756964506c656467696e670000000000000000000000000000000000008152600e0160405180910390208460006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610ec157600080fd5b6102c65a03f11515610ed257600080fd5b5050506040518051905050610eea8785878585610f9e565b50505050505050565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f7661756c740000000000000000000000000000000000000000000000000000008152600501604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b600354600160a060020a031681565b60008060008086600160a060020a0316638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fea57600080fd5b6102c65a03f11515610ffb57600080fd5b5050506040518051945050600160a060020a038816633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561104c57600080fd5b6102c65a03f1151561105d57600080fd5b5050506040518051935050600160a060020a03861663b09927a16000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110ae57600080fd5b6102c65a03f115156110bf57600080fd5b5050506040518051925050600160a060020a0385166324fea3b06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561111057600080fd5b6102c65a03f1151561112157600080fd5b5050506040518051915050600160a060020a03881663be0384788a88858260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561119557600080fd5b6102c65a03f115156111a657600080fd5b50505087600160a060020a031663be0384788a87858d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561121257600080fd5b6102c65a03f1151561122357600080fd5b50505087600160a060020a031663be0384788a87848d60405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b151561128f57600080fd5b6102c65a03f115156112a057600080fd5b50505087600160a060020a0316630a8ed3db8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561130457600080fd5b6102c65a03f1151561131557600080fd5b50505087600160a060020a0316630a8ed3db8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561137957600080fd5b6102c65a03f1151561138a57600080fd5b50505087600160a060020a0316639d0effdb30898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156113ee57600080fd5b6102c65a03f115156113ff57600080fd5b50505087600160a060020a0316639d0effdb308a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561146357600080fd5b6102c65a03f1151561147457600080fd5b50505087600160a060020a031663afd925df8a898760405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b50505087600160a060020a031663afd925df8a8a8660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561154d57600080fd5b6102c65a03f1151561155e57600080fd5b5050507fedeaf64ef333aa90332884a5a2f7f4afd68cb2f994f2305530ffd9f77a7d82f686604051600160a060020a03909116815260200160405180910390a17f5aea3adcb99f382f124e44eb79721965a8f357a5919434da5e74e85b8c79a02585604051600160a060020a03909116815260200160405180910390a1505050505050505050565b6040516105c9806115f78339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a723058205d3f96442eee17778a169f6a12666d24e50458e5605766853aa79871c8b2bbd40029", - "sourceMap": "164:2353:3:-;;;;;;;;;-1:-1:-1;;;164:2353:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:36;;;;;;;;;;;;;;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;246:21:3;;;;;;;;;;;;797:1010:36;;;;;;;;;;-1:-1:-1;;;;;797:1010:36;;;;;336:77:41;;;;;;;;;;;;192:63:2;;;;;;;;;;;;247:42:36;;;;;;;;;;;;57:58:41;;;;;;;;;;;;492:75;;;;;;;;;;;;188:25:36;;;;;;;;;;;;582:755:3;;;;;;;;;;-1:-1:-1;;;;;582:755:3;;;;;;;;;;;;420:66:41;;;;;;;;;;;;129:57:2;;;;;;;;;;;;121:63:41;;;;;;;;;;;;216:24:3;;;;;;;;;;;;219:22:36;;;-1:-1:-1;;;;;219:22:36;;:::o;258:72:41:-;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;246:21:3:-;;;-1:-1:-1;;;;;246:21:3;;:::o;797:1010:36:-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:36;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:36;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:36;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:36;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:36;;;;;;-1:-1:-1;;;;;998:36:36;;;;;;;;;;;;;;;-1:-1:-1;998:36:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:36;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:36;1084:33;;-1:-1:-1;1080:696:36;;1152:3;-1:-1:-1;;;;;1152:27:36;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:36;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:36;;;;-1:-1:-1;1257:19:36;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:36;;;;;;-1:-1:-1;;;;;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:36;;-1:-1:-1;;;;;1318:20:36;;;;-1:-1:-1;1318:20:36;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:36;;;;;;-1:-1:-1;;;;;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:36;;-1:-1:-1;;;;;1416:10:36;;-1:-1:-1;1416:31:36;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:36;;;;;;-1:-1:-1;;;;;1416:43:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:36;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:36;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:36;;;;;;-1:-1:-1;;;;;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:36;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:36;;;;;;-1:-1:-1;;;;;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:36;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:36;;;;;;-1:-1:-1;;;;;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:36;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:36;;;;;;-1:-1:-1;;;;;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:36;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;336:77:41:-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;192:63:2:-;228:27;;;;;;;;;;;;;;192:63;:::o;247:42:36:-;;;-1:-1:-1;;;;;247:42:36;;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;188:25:36:-;;;-1:-1:-1;;;;;188:25:36;;:::o;582:755:3:-;664:13;702:7;740:22;877:9;954:17;680:12;687:4;680:6;:12::i;:::-;664:28;;716:6;-1:-1:-1;;;;;716:10:3;;:12;;;;;;;;;;;-1:-1:-1;;;716:12:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;765:23:3;;;:25;;;;;;;;;;;-1:-1:-1;;;765:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;801:20:3;;;822:4;836:6;765:25;822:4;801:65;;-1:-1:-1;;;801:65:3;;;;;;-1:-1:-1;;;;;801:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;801:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;897:6;-1:-1:-1;;;;;897:21:3;;168:18:2;;;;;;;;;;;;;;;933:9:3;;-1:-1:-1;;;;;933:9:3;;897:46;;;;;;;-1:-1:-1;;;897:46:3;;;;;;;;;;;;;-1:-1:-1;;;;;897:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;989:21:3;;;228:27:2;;;;;;;;;;;;;;;1022:6:3;;-1:-1:-1;;;;;1022:6:3;;989:40;;;;;;;-1:-1:-1;;;989:40:3;;;;;;;;;;;;;-1:-1:-1;;;;;989:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1040:12:3;;;989:40;1066:23;1040:50;;-1:-1:-1;;;1040:50:3;;;;;;-1:-1:-1;;;;;1040:50:3;;;;;;;;;;;;;;;-1:-1:-1;1040:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:2;-1:-1:-1;;;;;1100:13:3;;1122:1;1126:23;1100:50;;-1:-1:-1;;;1100:50:3;;;;;;-1:-1:-1;;;;;1100:50:3;;;;;;;;;;;;;;;-1:-1:-1;1100:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1211:13:3;;;;1225:25;:27;;;;;;;;;;;-1:-1:-1;;;1225:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228::2;;;;;;;;;;;;;;1273:2:3;1211:66;;;;;;;;-1:-1:-1;;;1211:66:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1211:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:42;1304:5;1311:3;1316:6;1324:1;1327:2;1288:15;:42::i;:::-;582:755;;;;;;;:::o;420:66:41:-;457:29;;;;;;;;;;;;;;420:66;:::o;129:57:2:-;168:18;;;;;;;;;;;;;;129:57;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o;216:24:3:-;;;-1:-1:-1;;;;;216:24:3;;:::o;1343:1172::-;1456:22;1516:16;1574:23;1638:25;1481:6;-1:-1:-1;;;;;1481:23:3;;:25;;;;;;;;;;;-1:-1:-1;;;1481:25:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1535:27:3;;;:29;;;;;;;;;;;-1:-1:-1;;;1535:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1600:26:3;;;:28;;;;;;;;;;;-1:-1:-1;;;1600:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1666:22:3;;;:24;;;;;;;;;;;-1:-1:-1;;;1666:24:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1701:20:3;;;1722:5;1737:1;1741:15;1722:5;1701:63;;-1:-1:-1;;;1701:63:3;;;;;;-1:-1:-1;;;;;1701:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1701:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1774:3;-1:-1:-1;;;;;1774:20:3;;1795:5;1810:2;1815:15;1832:5;1774:64;;-1:-1:-1;;;1774:64:3;;;;;;-1:-1:-1;;;;;1774:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1848:3;-1:-1:-1;;;;;1848:20:3;;1869:5;1884:2;1889:17;1908:5;1848:66;;-1:-1:-1;;;1848:66:3;;;;;;-1:-1:-1;;;;;1848:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1848:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2043:3;-1:-1:-1;;;;;2043:19:3;;2063:5;2078:6;2087:14;2043:59;;-1:-1:-1;;;2043:59:3;;;;;;-1:-1:-1;;;;;2043:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2043:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2112:3;-1:-1:-1;;;;;2112:19:3;;2132:5;2147:3;2153:8;2112:50;;-1:-1:-1;;;2112:50:3;;;;;;-1:-1:-1;;;;;2112:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2112:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2172:3;-1:-1:-1;;;;;2172:20:3;;2193:4;2207:6;2216:14;2172:59;;-1:-1:-1;;;2172:59:3;;;;;;-1:-1:-1;;;;;2172:59:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2172:59:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:3;-1:-1:-1;;;;;2241:20:3;;2262:4;2276:3;2282:8;2241:50;;-1:-1:-1;;;2241:50:3;;;;;;-1:-1:-1;;;;;2241:50:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2241:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2302:3;-1:-1:-1;;;;;2302:24:3;;2327:5;2342:6;2351:14;2302:64;;-1:-1:-1;;;2302:64:3;;;;;;-1:-1:-1;;;;;2302:64:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2302:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2376:3;-1:-1:-1;;;;;2376:24:3;;2401:5;2416:3;2422:8;2376:55;;-1:-1:-1;;;2376:55:3;;;;;;-1:-1:-1;;;;;2376:55:3;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:23;2462:1;2442:23;;-1:-1:-1;;;;;2442:23:3;;;;;;;;;;;;;;2475:33;2504:2;2475:33;;-1:-1:-1;;;;;2475:33:3;;;;;;;;;;;;;;1343:1172;;;;;;;;;:::o;164:2353::-;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "1429400", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "ACL_APP()": "683", - "ACL_APP_ID()": "572", - "APP_ADDR_NAMESPACE()": "352", - "APP_BASES_NAMESPACE()": "616", - "CORE_NAMESPACE()": "484", - "KERNEL_APP()": "595", - "KERNEL_APP_ID()": "330", - "LP_APP_ID()": "440", - "VAULT_APP_ID()": "594", - "baseACL()": "589", - "baseKernel()": "809", - "lpBase()": "655", - "newDAO(address)": "infinite", - "newLP(address,address)": "infinite", - "regFactory()": "743", - "vaultBase()": "919" - }, - "internal": { - "_setPermissions(address,contract ACL,contract Kernel,contract LPVault,contract LiquidPledging)": "infinite" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "LP_APP_ID()": "30744267", - "VAULT_APP_ID()": "d2dd420f", - "baseACL()": "086b339e", - "baseKernel()": "b16dd130", - "lpBase()": "1cb671b1", - "newDAO(address)": "21687444", - "newLP(address,address)": "bce9b995", - "regFactory()": "656362b5", - "vaultBase()": "eeab4955" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "./contracts/LPVault.sol": { - "ILiquidPledging": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "confirmPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "cancelPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "cancelPayment(uint64,uint256)": "e9c211e2", - "confirmPayment(uint64,uint256)": "2ee88808" - } - }, - "userdoc": { - "methods": {} - } - }, - "LPVault": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "escapeFunds", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nPayments", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_liquidPledging", - "type": "address" - }, - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CANCEL_PAYMENT_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SET_AUTOPAY_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "liquidPledging", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_idPayment", - "type": "uint256" - } - ], - "name": "cancelPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CONFIRM_PAYMENT_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_idPayment", - "type": "uint256" - } - ], - "name": "confirmPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "payments", - "outputs": [ - { - "name": "ref", - "type": "bytes32" - }, - { - "name": "dest", - "type": "address" - }, - { - "name": "state", - "type": "uint8" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "isTokenEscapable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "escapeHatch", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_automatic", - "type": "bool" - } - ], - "name": "setAutopay", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_ref", - "type": "bytes32" - }, - { - "name": "_dest", - "type": "address" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "authorizePayment", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ESCAPE_HATCH_CALLER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_idPayments", - "type": "uint256[]" - } - ], - "name": "multiCancel", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "autoPay", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "escapeHatchDestination", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_idPayments", - "type": "uint256[]" - } - ], - "name": "multiConfirm", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "autoPay", - "type": "bool" - } - ], - "name": "AutoPaySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "EscapeFundsCalled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idPayment", - "type": "uint256" - }, - { - "indexed": true, - "name": "ref", - "type": "bytes32" - } - ], - "name": "ConfirmPayment", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idPayment", - "type": "uint256" - }, - { - "indexed": true, - "name": "ref", - "type": "bytes32" - } - ], - "name": "CancelPayment", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idPayment", - "type": "uint256" - }, - { - "indexed": true, - "name": "ref", - "type": "bytes32" - }, - { - "indexed": true, - "name": "dest", - "type": "address" - }, - { - "indexed": false, - "name": "token", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "AuthorizePayment", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - } - ], - "name": "EscapeHatchBlackistedToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "EscapeHatchCalled", - "type": "event" - } - ], - "devdoc": { - "methods": { - "authorizePayment(bytes32,address,address,uint256)": { - "params": { - "_amount": "The amount that the payment is being authorized for", - "_dest": "The address that payments will be sent to", - "_ref": "References the payment will normally be the pledgeID" - }, - "return": "idPayment The id of the payment (needed by the owner to confirm)" - }, - "cancelPayment(uint256)": { - "params": { - "_idPayment": "Array lookup for the payment." - } - }, - "confirmPayment(uint256)": { - "params": { - "_idPayment": "Array lookup for the payment." - } - }, - "escapeFunds(address,uint256)": { - "params": { - "_amount": "to transfer", - "_token": "to transfer" - } - }, - "escapeHatch(address)": { - "params": { - "_token": "to transfer, use 0x0 for ether" - } - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "initialize(address,address)": { - "params": { - "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 ", - "_liquidPledging": "" - } - }, - "isTokenEscapable(address)": { - "params": { - "_token": "the token address being queried" - }, - "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" - }, - "multiCancel(uint256[])": { - "params": { - "_idPayments": "An array of multiple payment ids" - } - }, - "multiConfirm(uint256[])": { - "params": { - "_idPayments": "An array of multiple payment ids" - } - }, - "nPayments()": { - "return": "The total number of payments that have ever been authorized" - }, - "setAutopay(bool)": { - "params": { - "_automatic": "If true, payments will confirm instantly, if false the training wheels are put on and the owner must manually approve every payment" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "606060405234156200001057600080fd5b604051602080620017fb8339810160405280805191508190506200004281640100000000620015f76200004a82021704565b5050620000c9565b62000062640100000000620016436200009a82021704565b600160a060020a03811615156200007857600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000a857600080fd5b620000c06401000000006200165d620000c582021704565b600355565b4390565b61172280620000d96000396000f3006060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029", - "sourceMap": "1808:7783:4:-;;;3705:102;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3705:102:4;;-1:-1:-1;1809:30:0;3705:102:4;1809:5:0;;;;;;:30;:::i;:::-;1737:109;3705:102:4;1808:7783;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1808:7783:4:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106101455763ffffffff60e060020a6000350416631b28591c811461014a5780633baf35fb1461016e578063485cc955146101935780634ad65a68146101b8578063539854cd146101cb57806360b1e057146101de57806374041d1f146101f157806380afdea8146102205780638422927d14610233578063866836ff14610249578063876ca09f1461025c57806387d8178914610272578063892db057146102e35780638b3dd749146103165780639b3fdf4c14610329578063a142d6081461033c578063a1658fad1461035b578063a4500c33146103be578063a5426df1146103d6578063b09927a114610401578063b796105c14610414578063bbc3282014610432578063c4d66de814610445578063d4aae0c414610464578063f5b6123014610477578063f92a79ff1461048a578063ffd82d21146104db575b600080fd5b341561015557600080fd5b61016c600160a060020a03600435166024356104f9565b005b341561017957600080fd5b610181610637565b60405190815260200160405180910390f35b341561019e57600080fd5b61016c600160a060020a036004358116906024351661063e565b34156101c357600080fd5b610181610699565b34156101d657600080fd5b6101816106cd565b34156101e957600080fd5b610181610701565b34156101fc57600080fd5b610204610735565b604051600160a060020a03909116815260200160405180910390f35b341561022b57600080fd5b610181610744565b341561023e57600080fd5b61016c60043561074a565b341561025457600080fd5b610181610756565b341561026757600080fd5b61016c60043561078a565b341561027d57600080fd5b61028860043561080b565b604051858152600160a060020a0385166020820152604081018460028111156102ad57fe5b60ff16815260200183600160a060020a0316600160a060020a031681526020018281526020019550505050505060405180910390f35b34156102ee57600080fd5b610302600160a060020a036004351661085c565b604051901515815260200160405180910390f35b341561032157600080fd5b61018161087b565b341561033457600080fd5b610181610881565b341561034757600080fd5b61016c600160a060020a03600435166108fd565b341561036657600080fd5b61030260048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650610b5495505050505050565b34156103c957600080fd5b61016c6004351515610c92565b34156103e157600080fd5b610181600435600160a060020a0360243581169060443516606435610d2f565b341561040c57600080fd5b610181610ef6565b341561041f57600080fd5b61016c6004803560248101910135610f2a565b341561043d57600080fd5b610302610f5d565b341561045057600080fd5b61016c600160a060020a0360043516610f66565b341561046f57600080fd5b610204610f73565b341561048257600080fd5b610204610f82565b341561049557600080fd5b61020460046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f9195505050505050565b34156104e657600080fd5b61016c600480356024810191013561106d565b60006040517f4553434150455f48415443485f43414c4c45525f524f4c450000000000000000815260180160405180910390206105358461109b565b610540338383610b54565b151561054b57600080fd5b600160a060020a038516151561056057600080fd5b606454859350600160a060020a038085169163a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105c657600080fd5b6102c65a03f115156105d757600080fd5b5050506040518051905015156105ec57600080fd5b7f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae38585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b607b545b90565b6003541561064b57600080fd5b610654816110bb565b600160a060020a038216151561066957600080fd5b50607c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902081565b6040517f5345545f4155544f5041595f524f4c45000000000000000000000000000000008152601001604051809103902081565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b607c54600160a060020a031681565b60015481565b610753816110d1565b50565b6040517f434f4e4649524d5f5041594d454e545f524f4c450000000000000000000000008152601401604051809103902081565b6000607b8281548110151561079b57fe5b906000526020600020906004020190506107f3336040517f434f4e4649524d5f5041594d454e545f524f4c45000000000000000000000000815260140160405180910390206107ee858560030154611256565b610b54565b15156107fe57600080fd5b610807826112b6565b5050565b607b80548290811061081957fe5b60009182526020909120600490910201805460018201546002830154600390930154919350600160a060020a038082169360a060020a90920460ff169291169085565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061093a8461109b565b610945338383610b54565b151561095057600080fd5b600160a060020a03851660009081526065602052604090205460ff161561097657600080fd5b600160a060020a0385161515610a0857606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156109bf57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610b4d565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6257600080fd5b6102c65a03f11515610a7357600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610ae257600080fd5b6102c65a03f11515610af357600080fd5b505050604051805190501515610b0857600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15b5050505050565b6000610b5e611661565b60008084511115610b7757835160200290508391508082525b600054600160a060020a03161580610c88575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610c1e578082015183820152602001610c06565b50505050905090810190601f168015610c4b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610c6c57600080fd5b6102c65a03f11515610c7d57600080fd5b505050604051805190505b9695505050505050565b6040517f5345545f4155544f5041595f524f4c450000000000000000000000000000000081526010016040518091039020610ccc82611473565b610cd7338383610b54565b1515610ce257600080fd5b607a805460ff191684151517908190557f2cd164e981e8d4f5a1d624f9b48a50822486372629e8887030fea23424d01a3b9060ff16604051901515815260200160405180910390a1505050565b607c54600090819033600160a060020a03908116911614610d4f57600080fd5b50607b8054908190610d649060018301611673565b506000607b82815481101515610d7657fe5b60009182526020909120600160049092020101805474ff0000000000000000000000000000000000000000191660a060020a836002811115610db457fe5b021790555085607b82815481101515610dc957fe5b6000918252602090912060049091020155607b805486919083908110610deb57fe5b906000526020600020906004020160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555083607b82815481101515610e3057fe5b906000526020600020906004020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555082607b82815481101515610e7557fe5b6000918252602090912060036004909202010155600160a060020a03851686827f7043e72dbe49b97a16440f93a3d5fae7c11d1d2e815d153b68b1060b7bfaabe08787604051600160a060020a03909216825260208201526040908101905180910390a4607a5460ff1615610eed57610eed816112b6565b95945050505050565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60005b81811015610f5857610f50838383818110610f4457fe5b905060200201356110d1565b600101610f2d565b505050565b607a5460ff1681565b6003541561014557600080fd5b600054600160a060020a031681565b606454600160a060020a031681565b6000610f9b6114c0565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611002578082015183820152602001610fea565b50505050905090810190601f16801561102f5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561104d57600080fd5b6102c65a03f1151561105e57600080fd5b50505060405180519392505050565b60005b81811015610f585761109383838381811061108757fe5b9050602002013561078a565b600101611070565b6110a3611661565b6110b582600160a060020a03166115b0565b92915050565b600354156110c857600080fd5b610753816115f7565b60006040517f43414e43454c5f5041594d454e545f524f4c45000000000000000000000000008152601301604051809103902061110d836115b0565b611118338383610b54565b151561112357600080fd5b607b54841061113157600080fd5b607b80548590811061113f57fe5b6000918252602082206004909102019350600184015460a060020a900460ff16600281111561116a57fe5b1461117457600080fd5b60018301805474ff0000000000000000000000000000000000000000191674020000000000000000000000000000000000000000179055607c5483546003850154600160a060020a039092169163e9c211e2919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561120c57600080fd5b6102c65a03f1151561121d57600080fd5b505083549050847fd3a53825e9cd3e10f56bcb532f79e5e11fb23cad8a79e2dc8e3773df17a1a7a160405160405180910390a350505050565b61125e611661565b600260405180591061126d5750595b90808252806020026020018201604052509050828160008151811061128e57fe5b6020908102909101015281816001815181106112a657fe5b6020908102909101015292915050565b607b54600090819083106112c957600080fd5b607b8054849081106112d757fe5b6000918252602082206004909102019250600183015460a060020a900460ff16600281111561130257fe5b1461130c57600080fd5b60018201805474ff0000000000000000000000000000000000000000191660a060020a179055607c5482546003840154600160a060020a0390921691632ee88808919060405160e060020a63ffffffff851602815267ffffffffffffffff90921660048301526024820152604401600060405180830381600087803b151561139357600080fd5b6102c65a03f115156113a457600080fd5b505050600282015460018301546003840154600160a060020a039283169350839263a9059cbb92169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561141957600080fd5b6102c65a03f1151561142a57600080fd5b50505060405180519050151561143f57600080fd5b8154837f68e9e9dd08fe773726352a12c1cec4763a63f382fbd288ce782eb77ef2da49de60405160405180910390a3505050565b61147b611661565b6000600160405180591061148c5750595b9080825280602002602001820160405250915082905080826000815181106114b057fe5b6020908102909101015250919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519250829150505b5090565b6115b8611661565b60016040518059106115c75750595b9080825280602002602001820160405250905081816000815181106115e857fe5b60209081029091010152919050565b6115ff611643565b600160a060020a038116151561161457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6003541561165057600080fd5b61165861165d565b600355565b4390565b60206040519081016040526000815290565b815481835581811511610f5857600083815260209020610f589161063b9160049182028101918502015b808211156115ac57600080825560018201805474ffffffffffffffffffffffffffffffffffffffffff1916905560028201805473ffffffffffffffffffffffffffffffffffffffff19169055600382015560040161169d5600a165627a7a7230582007d06a81209cd1b58de323fa877cbb8015a1f9c21a9a9e7cdd9fa5954bbc1c7d0029", - "sourceMap": "1808:7783:4:-;;;;;;;;;-1:-1:-1;;;1808:7783:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:291;;;;;;;;;;-1:-1:-1;;;;;7931:291:4;;;;;;;;;8304:89;;;;;;;;;;;;;;;;;;;;;;;;;;;4277:255;;;;;;;;;;-1:-1:-1;;;;;4277:255:4;;;;;;;;;;1960:78;;;;;;;;;;;;2044:72;;;;;;;;;;;;68:84:30;;;;;;;;;;;;3426:37:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:37:4;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;6960:94:4;;;;;;;;;;;;;;1874:80;;;;;;;;;;;;6508:234;;;;;;;;;;;;;;3395:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3395:25:4;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3395:25:4;-1:-1:-1;;;;;3395:25:4;;;;;;;;;;;;;;;;;;;;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;;;;;;;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;4865:153:4;;;;;;;;;;;;;;;;5549:649;;;;;;;;;;;;-1:-1:-1;;;;;5549:649:4;;;;;;;;;;;;1330:88:0;;;;;;;;;;;;7501:169:4;;;;;;;;;;;;;;;;;;;;;3246:19;;;;;;;;;;;;3813:162;;;;;;;;;;-1:-1:-1;;;;;3813:162:4;;;;;86:21:22;;;;;;;;;;;;1536:37:0;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;7194:168:4;;;;;;;;;;;;;;;;;;;;;7931:291;8078:11;1381:37:0;;;;;;;;;;;;;;8023:11:4;8027:6;8023:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;8054:13:4;;;;8046:22;;;;;;8138;;8098:6;;-1:-1:-1;;;;;;8123:14:4;;;;;;8138:22;8162:7;8138:22;8123:47;;;;;;;-1:-1:-1;;;8123:47:4;;;;;;-1:-1:-1;;;;;8123:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8115:56;;;;;;;;8181:34;8199:6;8207:7;8181:34;;-1:-1:-1;;;;;8181:34:4;;;;;;;;;;;;;;;;;;;;7931:291;;;;;:::o;8304:89::-;8371:8;:15;8304:89;;:::o;4277:255::-;140:19:26;;:24;132:33;;;;;;4383:41:4;4400:23;4383:16;:41::i;:::-;-1:-1:-1;;;;;4443:22:4;;;;4435:31;;;;;;-1:-1:-1;4476:14:4;:49;;-1:-1:-1;;4476:49:4;-1:-1:-1;;;;;4476:49:4;;;;;;;;;;4277:255::o;1960:78::-;2006:32;;;;;;;;;;;;;;1960:78;:::o;2044:72::-;2087:29;;;;;;;;;;;;;;2044:72;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;3426:37:4:-;;;-1:-1:-1;;;;;3426:37:4;;:::o;113:20:22:-;;;;:::o;6960:94:4:-;7019:28;7036:10;7019:16;:28::i;:::-;6960:94;:::o;1874:80::-;1921:33;;;;;;;;;;;;;;1874:80;:::o;6508:234::-;6566:17;6586:8;6595:10;6586:20;;;;;;;;;;;;;;;;;;;;6566:40;;6624:71;6635:10;1921:33;;;;;;;;;;;;;;6669:25;6673:10;6685:1;:8;;;6669:3;:25::i;:::-;6624:10;:71::i;:::-;6616:80;;;;;;;;6706:29;6724:10;6706:17;:29::i;:::-;6508:234;;:::o;3395:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3395:25:4;;;;-1:-1:-1;;;3395:25:4;;;;;;;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;492:1:23;2440:626:0;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;4865:153:4:-;2087:29;;;;;;;;;;;;;;4935:15;4939:10;4935:3;:15::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;4962:7:4;:20;;-1:-1:-1;;4962:20:4;;;;;;;;;4992:19;;4962:20;5003:7;4992:19;;;;;;;;;;;;;;;;4865:153;;;:::o;5549:649::-;3665:14;;5709:4;;;;3643:10;-1:-1:-1;;;;;3643:37:4;;;3665:14;;3643:37;3635:46;;;;;;-1:-1:-1;5746:8:4;:15;;;;;5771:18;;;;;;:::i;:::-;;5827:21;5799:8;5808:9;5799:19;;;;;;;;;;;;;;;;;;:25;:19;;;;;:25;:49;;-1:-1:-1;;5799:49:4;-1:-1:-1;;;5799:49:4;;;;;;;;;;;;;;5884:4;5858:8;5867:9;5858:19;;;;;;;;;;;;;;;;;;;;;;;:30;5898:8;:19;;5925:5;;5898:8;5907:9;;5898:19;;;;;;;;;;;;;;;;:24;;;:32;;;;;-1:-1:-1;;;;;5898:32:4;;;;;-1:-1:-1;;;;;5898:32:4;;;;;;5968:6;5940:8;5949:9;5940:19;;;;;;;;;;;;;;;;;;;;:25;;;:34;;;;;-1:-1:-1;;;;;5940:34:4;;;;;-1:-1:-1;;;;;5940:34:4;;;;;;6013:7;5984:8;5993:9;5984:19;;;;;;;;;;;;;;;;;;:26;:19;;;;;:26;:36;-1:-1:-1;;;;;6031:57:4;;6059:4;6048:9;6031:57;6072:6;6080:7;6031:57;;-1:-1:-1;;;;;6031:57:4;;;;;;;;;;;;;;;;;;;;6103:7;;;;6099:66;;;6126:28;6144:9;6126:17;:28::i;:::-;6182:9;5549:649;-1:-1:-1;;;;;5549:649:4:o;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;7501:169:4:-;7566:6;7561:103;7578:22;;;7561:103;;;7621:32;7638:11;;7650:1;7638:14;;;;;;;;;;;;;7621:16;:32::i;:::-;7602:3;;7561:103;;;7501:169;;;:::o;3246:19::-;;;;;;:::o;3813:162::-;140:19:26;;:24;132:33;;;;;86:21:22;;;-1:-1:-1;;;;;86:21:22;;:::o;1536:37:0:-;;;-1:-1:-1;;;;;1536:37:0;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;7194:168:4:-;7260:6;7255:101;7272:22;;;7255:101;;;7315:30;7330:11;;7342:1;7330:14;;;;;;;;;;;;;7315;:30::i;:::-;7296:3;;7255:101;;354::17;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;9188:401:4:-;9341:17;2006:32;;;;;;;;;;;;;;9267:15;9271:10;9267:3;:15::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;9315:8:4;:15;9302:28;;9294:37;;;;;;9361:8;:20;;9370:10;;9361:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;9399:7:4;;;;-1:-1:-1;;;9399:7:4;;;;:32;;;;;;;;;9391:41;;;;;;9443:7;;;:32;;-1:-1:-1;;9443:32:4;;;;;9486:14;;9522:5;;9530:8;;;;-1:-1:-1;;;;;9486:14:4;;;;:28;;9522:5;9486:53;;-1:-1:-1;;;9486:53:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9486:53:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9576:5:4;;;-1:-1:-1;9564:10:4;9550:32;;;;;;;;;;9188:401;;;;:::o;1481:148:17:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:17:o;8592:472:4:-;8676:8;:15;8702:17;;;;8663:28;;8655:37;;;;;;8722:8;:20;;8731:10;;8722:20;;;;;;;;;;;;;;;;;;;-1:-1:-1;8760:7:4;;;;-1:-1:-1;;;8760:7:4;;;;:32;;;;;;;;;8752:41;;;;;;8814:18;8804:7;;:28;;-1:-1:-1;;8804:28:4;-1:-1:-1;;;8804:28:4;;;8842:14;;8879:5;;8887:8;;;;-1:-1:-1;;;;;8842:14:4;;;;:29;;8879:5;8842:54;;-1:-1:-1;;;8842:54:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8842:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8927:7:4;;;;;8968:6;;;8976:8;;;;-1:-1:-1;;;;;8927:7:4;;;;-1:-1:-1;8927:7:4;;8953:14;;8968:6;;8927:7;8953:32;;;;;;;-1:-1:-1;;;8953:32:4;;;;;;-1:-1:-1;;;;;8953:32:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8945:41;;;;;;;;9051:5;;9039:10;9024:33;;;;;;;;;;8592:472;;;:::o;315:191:6:-;359:8;;:::i;:::-;406:7;394:1;383:13;;;;;;;;;;;;;;;;;;;;;;;;379:17;;452:1;446:7;;497:2;490:1;492;490:4;;;;;;;;;;;;;;;;:9;-1:-1:-1;315:191:6;;-1:-1:-1;315:191:6:o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1808:7783:4:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1808:7783:4;;;;;;;;-1:-1:-1;;1808:7783:4;;;;;;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "1184400", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "CANCEL_PAYMENT_ROLE()": "374", - "CONFIRM_PAYMENT_ROLE()": "506", - "ESCAPE_HATCH_CALLER_ROLE()": "726", - "EVMSCRIPT_REGISTRY_APP()": "793", - "EVMSCRIPT_REGISTRY_APP_ID()": "418", - "SET_AUTOPAY_ROLE()": "396", - "appId()": "590", - "authorizePayment(bytes32,address,address,uint256)": "infinite", - "autoPay()": "910", - "canPerform(address,bytes32,uint256[])": "infinite", - "cancelPayment(uint256)": "infinite", - "confirmPayment(uint256)": "infinite", - "escapeFunds(address,uint256)": "infinite", - "escapeHatch(address)": "infinite", - "escapeHatchDestination()": "1117", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "722", - "initialize(address)": "970", - "initialize(address,address)": "61926", - "isTokenEscapable(address)": "937", - "kernel()": "1095", - "liquidPledging()": "721", - "multiCancel(uint256[])": "infinite", - "multiConfirm(uint256[])": "infinite", - "nPayments()": "459", - "payments(uint256)": "2154", - "setAutopay(bool)": "infinite" - }, - "internal": { - "_doCancelPayment(uint256)": "infinite", - "_doConfirmPayment(uint256)": "infinite" - } - }, - "methodIdentifiers": { - "CANCEL_PAYMENT_ROLE()": "4ad65a68", - "CONFIRM_PAYMENT_ROLE()": "866836ff", - "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "SET_AUTOPAY_ROLE()": "539854cd", - "appId()": "80afdea8", - "authorizePayment(bytes32,address,address,uint256)": "a5426df1", - "autoPay()": "bbc32820", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "cancelPayment(uint256)": "8422927d", - "confirmPayment(uint256)": "876ca09f", - "escapeFunds(address,uint256)": "1b28591c", - "escapeHatch(address)": "a142d608", - "escapeHatchDestination()": "f5b61230", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "initialize(address)": "c4d66de8", - "initialize(address,address)": "485cc955", - "isTokenEscapable(address)": "892db057", - "kernel()": "d4aae0c4", - "liquidPledging()": "74041d1f", - "multiCancel(uint256[])": "b796105c", - "multiConfirm(uint256[])": "ffd82d21", - "nPayments()": "3baf35fb", - "payments(uint256)": "87d81789", - "setAutopay(bool)": "a4500c33" - } - }, - "userdoc": { - "methods": { - "authorizePayment(bytes32,address,address,uint256)": { - "notice": "If `autoPay == true` the transfer happens automatically `else` the `owner` must call `confirmPayment()` for a transfer to occur (training wheels); either way, a new payment is added to `payments[]` " - }, - "cancelPayment(uint256)": { - "notice": "When `autopay` is `false` and after a payment has been authorized to allow the owner to cancel a payment instead of confirming it." - }, - "confirmPayment(uint256)": { - "notice": "Allows the owner to confirm payments; since `authorizePayment` is the only way to populate the `payments[]` array this is generally used when `autopay` is `false` after a payment has has been authorized" - }, - "escapeFunds(address,uint256)": { - "notice": "Transfer tokens to the escapeHatchDestination. Used as a safety mechanism to prevent the vault from holding too much value before being thoroughly battle-tested." - }, - "escapeHatch(address)": { - "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" - }, - "isTokenEscapable(address)": { - "notice": "Checks to see if `_token` is in the blacklist of tokens" - }, - "multiCancel(uint256[])": { - "notice": "`onlyOwner` An efficient way to cancel multiple payments" - }, - "multiConfirm(uint256[])": { - "notice": "`onlyOwner` An efficient way to confirm multiple payments" - }, - "setAutopay(bool)": { - "notice": "Used to decentralize, toggles whether the LPVault will automatically confirm a payment after the payment has been authorized" - } - } - } - } - }, - "./contracts/LiquidPledging.sol": { - "LiquidPledging": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "idReceiver", - "type": "uint64" - }, - { - "name": "donorAddress", - "type": "address" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "addGiverAndDonate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "whitelistDisabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "projectId", - "type": "uint64" - } - ], - "name": "isProjectCanceled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "PLUGIN_MANAGER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledges", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "confirmPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "idxDelegate", - "type": "uint64" - } - ], - "name": "getPledgeDelegate", - "outputs": [ - { - "name": "idDelegate", - "type": "uint64" - }, - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHashes", - "type": "bytes32[]" - } - ], - "name": "addValidPluginContracts", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "useWhitelist", - "type": "bool" - } - ], - "name": "useWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - } - ], - "name": "getPledge", - "outputs": [ - { - "name": "amount", - "type": "uint256" - }, - { - "name": "owner", - "type": "uint64" - }, - { - "name": "nDelegates", - "type": "uint64" - }, - { - "name": "intendedProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "oldPledge", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "pledgeState", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idSender", - "type": "uint64" - }, - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "idReceiver", - "type": "uint64" - } - ], - "name": "transfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_vault", - "type": "address" - }, - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idGiver", - "type": "uint64" - }, - { - "name": "idReceiver", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "donate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "isValidPlugin", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - } - ], - "name": "normalizePledge", - "outputs": [ - { - "name": "", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addDelegate", - "outputs": [ - { - "name": "idDelegate", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledgeAdmins", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgesAmounts", - "type": "uint256[]" - } - ], - "name": "mWithdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "removeValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idReceiver", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "addGiverAndDonate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "projectAdmin", - "type": "address" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addProject", - "outputs": [ - { - "name": "idProject", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idProject", - "type": "uint64" - } - ], - "name": "cancelProject", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "addValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "getCodeHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "isTokenEscapable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgesAmounts", - "type": "uint256[]" - } - ], - "name": "mConfirmPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "escapeHatch", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "cancelPledge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ESCAPE_HATCH_CALLER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "removeValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "addValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idDelegate", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateDelegate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledges", - "type": "uint64[]" - } - ], - "name": "mNormalizePledge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idSender", - "type": "uint64" - }, - { - "name": "pledgesAmounts", - "type": "uint256[]" - }, - { - "name": "idReceiver", - "type": "uint64" - } - ], - "name": "mTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idGiver", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateGiver", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "cancelPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idAdmin", - "type": "uint64" - } - ], - "name": "getPledgeAdmin", - "outputs": [ - { - "name": "adminType", - "type": "uint8" - }, - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "canceled", - "type": "bool" - }, - { - "name": "plugin", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgesAmounts", - "type": "uint256[]" - } - ], - "name": "mCancelPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "escapeHatchDestination", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idProject", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateProject", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vault", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "uint256" - }, - { - "indexed": true, - "name": "to", - "type": "uint256" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint256" - } - ], - "name": "CancelProject", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - } - ], - "name": "EscapeHatchBlackistedToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "EscapeHatchCalled", - "type": "event" - } - ], - "devdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "name": "The name used to identify the Delegate", - "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Delegate's profile often an IPFS hash" - }, - "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" - }, - "addGiver(string,string,uint64,address)": { - "params": { - "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "name": "The name used to identify the Giver", - "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Giver's profile often an IPFS hash" - }, - "return": "idGiver The id number used to reference this Admin" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", - "name": "The name used to identify the Project", - "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", - "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", - "projectAdmin": "The address for the trusted project manager", - "url": "The link to the Project's profile often an IPFS hash" - }, - "return": "idProject The id number used to reference this Admin" - }, - "cancelPayment(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be canceled", - "idPledge": "Id of the pledge that's withdraw is to be canceled" - } - }, - "cancelPledge(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be transfered to the `oldPledge`", - "idPledge": "Id of the pledge that is to be canceled" - } - }, - "cancelProject(uint64)": { - "params": { - "idProject": "Id of the project that is to be canceled" - } - }, - "confirmPayment(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be withdrawn", - "idPledge": "Id of the pledge that is to be withdrawn" - } - }, - "donate(uint64,uint64,address,uint256)": { - "params": { - "idGiver": "The id of the Giver donating", - "idReceiver": "The Admin receiving the donation; can be any Admin: the Giver themselves, another Giver, a Delegate or a Project" - } - }, - "escapeHatch(address)": { - "params": { - "_token": "to transfer, use 0x0 for ether" - } - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "getPledge(uint64)": { - "params": { - "idPledge": "the id number of the pledge being queried" - }, - "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" - }, - "getPledgeAdmin(uint64)": { - "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" - }, - "getPledgeDelegate(uint64,uint64)": { - "params": { - "idPledge": "The id number representing the pledge being queried", - "idxDelegate": "The index number for the delegate in this Pledge " - } - }, - "initialize(address,address)": { - "params": { - "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 ", - "_vault": "The vault where the ETH backing the pledges is stored" - } - }, - "isProjectCanceled(uint64)": { - "params": { - "projectId": "The Admin id number used to specify the Project" - }, - "return": "True if the Project has been canceled" - }, - "isTokenEscapable(address)": { - "params": { - "_token": "the token address being queried" - }, - "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" - }, - "mCancelPayment(uint256[])": { - "params": { - "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" - } - }, - "mConfirmPayment(uint256[])": { - "params": { - "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" - } - }, - "mNormalizePledge(uint64[])": { - "params": { - "pledges": "An array of pledge IDs" - } - }, - "mTransfer(uint64,uint256[],uint64)": { - "params": { - "idReceiver": "Destination of the `pledesAmounts`, can be a Giver or Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", - "idSender": "Id of the Admin that is transferring the amounts from all the Pledges; this admin must have permissions to move the value", - "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" - } - }, - "mWithdraw(uint256[])": { - "params": { - "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" - } - }, - "normalizePledge(uint64)": { - "params": { - "idPledge": "This is the id of the pledge that will be normalized" - }, - "return": "The normalized Pledge!" - }, - "numberOfPledgeAdmins()": { - "return": "The total number of admins (Givers, Delegates and Projects) ." - }, - "numberOfPledges()": { - "return": "The total number of Pledges in the system" - }, - "transfer(uint64,uint64,uint256,uint64)": { - "params": { - "amount": "Quantity of ETH (in wei) that this pledge is transferring the authority to withdraw from the vault", - "idPledge": "Id of the pledge that's moving the value", - "idReceiver": "Destination of the `amount`, can be a Giver/Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", - "idSender": "Id of the Admin that is transferring the amount from Pledge to Pledge; this admin must have permissions to move the value" - } - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "params": { - "idDelegate": "The Admin id number used to specify the Delegate", - "newAddr": "The new address that represents this Delegate", - "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "newName": "The new name used to identify the Delegate", - "newUrl": "The new link to the Delegate's profile often an IPFS hash" - } - }, - "updateGiver(uint64,address,string,string,uint64)": { - "params": { - "idGiver": "This is the Admin id number used to specify the Giver", - "newAddr": "The new address that represents this Giver", - "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "newName": "The new name used to identify the Giver", - "newUrl": "The new link to the Giver's profile often an IPFS hash" - } - }, - "updateProject(uint64,address,string,string,uint64)": { - "params": { - "idProject": "The Admin id number used to specify the Project", - "newAddr": "The new address that represents this Project", - "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", - "newName": "The new name used to identify the Project", - "newUrl": "The new link to the Project's profile often an IPFS hash" - } - }, - "withdraw(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be authorized", - "idPledge": "Id of the pledge that is to be redeemed into ether" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052607f805460ff1916905534156200001a57600080fd5b6040516020806200562b8339810160405280805191508190506200004c8164010000000062004b9f6200005482021704565b5050620000d3565b6200006c64010000000062004f48620000a482021704565b600160a060020a03811615156200008257600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b257600080fd5b620000ca64010000000062005127620000cf82021704565b600355565b4390565b61554880620000e36000396000f3006060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029", - "sourceMap": "1113:10259:5:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1166:109:5;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1166:109:5;;-1:-1:-1;1809:30:0;1166:109:5;1809:5:0;;;;;;:30;:::i;:::-;1737:109;1166::5;1113:10259;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1113:10259:5:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106102575763ffffffff60e060020a6000350416627611c6811461025c5780631c8e8568146102925780632101a6ad146102b957806324fea3b0146102d85780632a8ec8cc146102fd5780632ee88808146103105780632f6b64ca1461033257806332ce8ebc146103ee578063387402911461040c5780633f657a461461042457806343387983146104b257806347c5ef43146104d4578063485cc955146105035780634c4316c7146105285780634eafbcd51461055c57806350f8a8031461057b57806352dc7dcc146105b65780635503d9ba146105f857806357adafb61461060b57806360b1e0571461065a5780636293c7021461066d5780636ba3cc871461068c5780636e802c6a146106ba57806372116e9214610774578063796d5654146107c557806379f4542e146107e45780637f61fa931461080357806380afdea81461084557806381ea440814610858578063892db057146108775780638b3dd749146108965780639398f5a2146108a95780639b3fdf4c146108f8578063a142d6081461090b578063a1658fad1461092a578063af9f45631461098d578063b09927a1146109af578063b12b5f76146109c2578063c4d66de8146109d8578063c8ae070f146109f7578063cc19ecf714610a0d578063ce17273c14610a59578063d4aae0c414610aa8578063d639cd7314610ad7578063db7c231414610b3f578063e9c211e214610b8b578063eba8ba0614610bad578063ef3766e414610d03578063f5b6123014610d52578063f6b24b1c14610d65578063f92a79ff14610db1578063fbfa77cf14610e02575b600080fd5b341561026757600080fd5b6102906001604060020a0360043516600160a060020a0360243581169060443516606435610e15565b005b341561029d57600080fd5b6102a5610e70565b604051901515815260200160405180910390f35b34156102c457600080fd5b6102a56001604060020a0360043516610e79565b34156102e357600080fd5b6102eb610f1b565b60405190815260200160405180910390f35b341561030857600080fd5b6102eb610f3d565b341561031b57600080fd5b6102906001604060020a0360043516602435610f48565b341561033d57600080fd5b6103576001604060020a036004358116906024351661107c565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103b1578082015183820152602001610399565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34156103f957600080fd5b61029060048035602481019101356111aa565b341561041757600080fd5b610290600435151561123e565b341561042f57600080fd5b6104436001604060020a03600435166112a4565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561049757fe5b60ff1681526020019850505050505050505060405180910390f35b34156104bd57600080fd5b6102906001604060020a0360043516602435611421565b34156104df57600080fd5b6102906001604060020a036004358116906024358116906044359060643516611608565b341561050e57600080fd5b610290600160a060020a036004358116906024351661161d565b341561053357600080fd5b6102906001604060020a0360043581169060243516600160a060020a0360443516606435611688565b341561056757600080fd5b6102a5600160a060020a036004351661181f565b341561058657600080fd5b61059a6001604060020a0360043516611896565b6040516001604060020a03909116815260200160405180910390f35b34156105c157600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a8b565b341561060357600080fd5b6102eb611d18565b341561061657600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d2295505050505050565b341561066557600080fd5b6102eb611d8d565b341561067857600080fd5b610290600160a060020a0360043516611dc1565b341561069757600080fd5b6102906001604060020a0360043516600160a060020a0360243516604435611e22565b34156106c557600080fd5b61059a60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e2e915050565b341561077f57600080fd5b61059a6024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612091565b34156107d057600080fd5b6102906001604060020a036004351661253e565b34156107ef57600080fd5b610290600160a060020a03600435166125a8565b341561080e57600080fd5b61059a60246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612620565b341561085057600080fd5b6102eb61269c565b341561086357600080fd5b6102eb600160a060020a03600435166126a2565b341561088257600080fd5b6102a5600160a060020a0360043516612724565b34156108a157600080fd5b6102eb612743565b34156108b457600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274995505050505050565b341561090357600080fd5b6102eb6127b4565b341561091657600080fd5b610290600160a060020a0360043516612830565b341561093557600080fd5b6102a560048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8695505050505050565b341561099857600080fd5b6102906001604060020a0360043516602435612bc4565b34156109ba57600080fd5b6102eb612c59565b34156109cd57600080fd5b610290600435612c8d565b34156109e357600080fd5b610290600160a060020a0360043516612ce5565b3415610a0257600080fd5b610290600435612cf5565b3415610a1857600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d64565b3415610a6457600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e6d95505050505050565b3415610ab357600080fd5b610abb612ea4565b604051600160a060020a03909116815260200160405180910390f35b3415610ae257600080fd5b610290600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb3915050565b3415610b4a57600080fd5b610290600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f28565b3415610b9657600080fd5b6102906001604060020a0360043516602435613031565b3415610bb857600080fd5b610bcc6001604060020a0360043516613159565b60405180896002811115610bdc57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c5d578082015183820152602001610c45565b50505050905090810190601f168015610c8a5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cc0578082015183820152602001610ca8565b50505050905090810190601f168015610ced5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d0e57600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332895505050505050565b3415610d5d57600080fd5b610abb613393565b3415610d7057600080fd5b610290600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a2565b3415610dbc57600080fd5b610abb60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ab95505050505050565b3415610e0d57600080fd5b610abb613587565b6000600160a060020a0384161515610e2c57600080fd5b610e5b846020604051908101604052806000815250602060405190810160405260008082526203f48090611e2e565b9050610e6981868585611688565b5050505050565b607f5460ff1681565b600080610e858361359b565b90506000815460ff166002811115610e9957fe5b1415610ea85760009150610f15565b6002815460ff166002811115610eba57fe5b14610ec157fe5b6001810154604060020a900460ff1615610ede5760019150610f15565b60018101546001604060020a03161515610efb5760009150610f15565b6001810154610f12906001604060020a0316610e79565b91505b50919050565b6040516000805160206154dd8339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610f6d57600080fd5b610f76846135e1565b91506001600383015460a060020a900460ff166002811115610f9457fe5b14610f9e57600080fd5b6002820154600183018054611069926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561103157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411610fee5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613612565b9050611076848285613934565b50505050565b60008061108761512b565b600080611093876135e1565b915081600101600187036001604060020a03168154811015156110b257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506110e68561359b565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561119a5780601f1061116f5761010080835404028352916020019161119a565b820191906000526020600020905b81548152906001019060200180831161117d57829003601f168201915b5050505050925050509250925092565b60006040516000805160206154dd833981519152815260130160405180910390206111f5338260006040518059106111df5750595b9080825280602002602001820160405250612a86565b151561120057600080fd5b600091505b60ff82168390101561107657611233848460ff851681811061122357fe5b9050602002013560001916612cf5565b600190910190611205565b6040516000805160206154dd83398151915281526013016040518091039020611286338260006040518059106111df5750599080825280602002602001820160405250612a86565b151561129157600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112b861513d565b6112c18a6135e1565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561135957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113165790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156113cf57fe5b60028111156113da57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061142f85611896565b945061143a856135e1565b92506000600384015460a060020a900460ff16600281111561145857fe5b1461146257600080fd5b6002830154611479906001604060020a03166139f4565b6002830154600184018054611541926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561150c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116114c95790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613612565b915061154e858386613934565b6002830154611565906001604060020a031661359b565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b15156115ed57600080fd5b6102c65a03f115156115fe57600080fd5b5050505050505050565b611611846139f4565b61107684848484613a4b565b6003541561162a57600080fd5b611633816140b7565b600160a060020a038216151561164857600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001611675607a82615189565b506001611683607b826151b5565b505050565b600080806001604060020a0387168190116116a257600080fd5b600084116116af57600080fd5b600160a060020a03851615156116c457600080fd5b6116cd8761359b565b92506000835460ff1660028111156116e157fe5b146116eb57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561176157600080fd5b6102c65a03f1151561177257600080fd5b50505060405180519050151561178757600080fd5b6117b887600060405180591061179a5750595b908082528060200260200182016040525060008060008a6000613612565b91506117c3826135e1565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361181687838689613a4b565b50505050505050565b607f54600090819060ff168061183c5750600160a060020a038316155b1561184a5760019150610f15565b600160a060020a0383166000908152607e602052604090205460ff16156118745760019150610f15565b61187d836126a2565b6000908152607d602052604090205460ff169392505050565b6000806000806118a5856135e1565b92506000600384015460a060020a900460ff1660028111156118c357fe5b146118d057849350611a83565b60028301546000604060020a9091046001604060020a031611801561190f57506002830154608060020a90046001604060020a031661190d6140cd565b115b15611a525760028301546001840180546119db926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119645790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b6002840154909250611a3290604060020a90046001604060020a03166000604051805910611a065750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050611a4385828560000154613934565b809450611a4f856135e1565b92505b611a5b856140d1565b90506001604060020a0380821690861614611a7f57611a7f85828560000154613934565b8093505b505050919050565b6000611a968261181f565b1515611aa157600080fd5b50607a8054908160018101611ab68382615189565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611ba757fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c989291602001906151e1565b5060e082015181600301908051611cb39291602001906151e1565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b8351831015611076576001604060020a03848481518110611d4457fe5b90602001906020020151169150604060020a848481518110611d6257fe5b90602001906020020151811515611d7557fe5b049050611d828282611421565b600190920191611d27565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020611de982614199565b611df4338383612a86565b1515611dff57600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b61168383338484610e15565b6000611e398261181f565b1515611e4457600080fd5b50607a8054908160018101611e598382615189565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ed657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fc79291602001906151e1565b5060e082015181600301908051611fe29291602001906151e1565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204e578082015183820152602001612036565b50505050905090810190601f16801561207b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209d8361181f565b15156120a857600080fd5b6001604060020a038516156122c5576120c08561359b565b905060146122b2826101006040519081016040528154909190829060ff1660028111156120e957fe5b60028111156120f457fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122a45780601f10612279576101008083540402835291602001916122a4565b820191906000526020600020905b81548152906001019060200180831161228757829003601f168201915b5050505050815250506141b9565b6001604060020a0316106122c557600080fd5b607a8054925082600181016122da8382615189565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123ca57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a026000805160206154fd833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124bb9291602001906151e1565b5060e0820151816003019080516124d69291602001906151e1565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125498261359b565b9050612554826139f4565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b6040516000805160206154dd833981519152815260130160405180910390206125f0338260006040518059106111df5750599080825280602002602001820160405250612a86565b15156125fb57600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126913388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e2e565b979650505050505050565b60015481565b60006126ac61512b565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126f05780518252601f1990920191602091820191016126d1565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b8351831015611076576001604060020a0384848151811061276b57fe5b90602001906020020151169150604060020a84848151811061278957fe5b9060200190602002015181151561279c57fe5b0490506127a98282610f48565b60019092019161274e565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286d84614199565b612878338383612a86565b151561288357600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a957600080fd5b600160a060020a038516151561293b57606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f257600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610e69565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1557600080fd5b6102c65a03f11515612a2657600080fd5b505050604051805190501515612a3b57600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a9061512b565b60008084511115612aa957835160200290508391508082525b600054600160a060020a03161580612bba575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b50578082015183820152602001612b38565b50505050905090810190601f168015612b7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9e57600080fd5b6102c65a03f11515612baf57600080fd5b505050604051805190505b9695505050505050565b600080612bd084611896565b9350612bdb846135e1565b600281015490925060c060020a90046001604060020a03161515612bfe57600080fd5b6000600383015460a060020a900460ff166002811115612c1a57fe5b14612c2457600080fd5b6002820154612c3b906001604060020a03166139f4565b60028201546110699060c060020a90046001604060020a03166140d1565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b6040516000805160206154dd83398151915281526013016040518091039020612cb58261422d565b612cc0338383612a86565b1515612ccb57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561025757600080fd5b50565b6040516000805160206154dd83398151915281526013016040518091039020612d3d338260006040518059106111df5750599080825280602002602001820160405250612a86565b1515612d4857600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d6f8861359b565b805490915033600160a060020a039081166101009092041614612d9157600080fd5b6001815460ff166002811115612da357fe5b14612dad57600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612dd960028201878761525b565b50612de860038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea057612e97828281518110612e8857fe5b90602001906020020151611896565b50600101612e70565b5050565b600054600160a060020a031681565b600080805b8451831015612f20576001604060020a03858481518110612ed557fe5b90602001906020020151169150604060020a858481518110612ef357fe5b90602001906020020151811515612f0657fe5b049050612f1586838387611608565b600190920191612eb8565b505050505050565b6000612f338861359b565b805490915033600160a060020a039081166101009092041614612f5557600080fd5b6000815460ff166002811115612f6757fe5b14612f7157600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612f9d60028201878761525b565b50612fac60038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305657600080fd5b61305f846135e1565b91506001600383015460a060020a900460ff16600281111561307d57fe5b1461308757600080fd5b600282015460018301805461314e926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130d75790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b905061106981611896565b60008061316461512b565b61316c61512b565b600080600080600061317d8a61359b565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d15780601f106132a6576101008083540402835291602001916132d1565b820191906000526020600020905b8154815290600101906020018083116132b457829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b8351831015611076576001604060020a0384848151811061334a57fe5b90602001906020020151169150604060020a84848151811061336857fe5b9060200190602002015181151561337b57fe5b0490506133888282613031565b60019092019161332d565b606454600160a060020a031681565b60006133ad8861359b565b805490915033600160a060020a0390811661010090920416146133cf57600080fd5b6002815460ff1660028111156133e157fe5b146133eb57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341760028201878761525b565b5061342660038201858561525b565b5080546001604060020a0380841660a860020a026000805160206154fd83398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b561423e565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351c578082015183820152602001613504565b50505050905090810190601f1680156135495780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356757600080fd5b6102c65a03f1151561357857600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b557600080fd5b607a80546001604060020a0384169081106135cc57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fb57600080fd5b607b80546001604060020a0384169081106135cc57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364b578082015183820152602001613633565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b557fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a03909116915081111561371f57809250613927565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a03831617905581549091906001810161375f83826151b5565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e057fe5b9052919050815181556020820151816001019080516138039291602001906152c9565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391b57fe5b02179055505050508092505b5050979650505050505050565b6000806000613946600187878761432e565b9250846001604060020a0316866001604060020a0316141561396757612f20565b82151561397357612f20565b61397c866135e1565b9150613987856135e1565b82549091508390101561399957600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a3611816600087878661432e565b60006139ff8261359b565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a405750805433600160a060020a0390811661010090920416145b1515612ea057600080fd5b600080808080806001604060020a038716819011613a6857600080fd5b613a7189611896565b9850613a7c896135e1565b9550613a878761359b565b94506000600387015460a060020a900460ff166002811115613aa557fe5b14613aaf57600080fd5b60028601546001604060020a038b811691161415613daa576000855460ff166002811115613ad957fe5b1415613aef57613aea898989614354565b6140ab565b6002855460ff166002811115613b0157fe5b1415613b1257613aea8989896143ae565b6001855460ff166002811115613b2457fe5b1415613da857613c508661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b835790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6002811115613c4757fe5b905250886145ec565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8357506001604060020a038414155b15613d8957600186015460001901841415613d6c576002860154600187018054613d5f926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ce85790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613612565b9250613aea89848a613934565b613d8389896001848a600101805490500303614652565b506140ab565b613d9b89898860010180549050614652565b9850613aea89898961475c565bfe5b613ed08661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4657602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e035790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebc57fe5b6002811115613ec757fe5b9052508b6145ec565b6001604060020a0390811692508214613da8576000855460ff166002811115613ef557fe5b1415613f265760028601546001604060020a03888116911614613f1457fe5b613d8389898860010180549050614652565b6001855460ff166002811115613f3857fe5b141561406f576140258661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc657600091825260209182902080546001604060020a03168452908202830192909160089101808411613b83575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3c57fe5b6001604060020a03908116915081141561405057613d9b89896001858a600101805490500303614652565b81811115613d6c57613d9b89896001858a600101805490500303614652565b6002855460ff16600281111561408157fe5b1415613da85761409e89896001858a600101805490500303614652565b9850613aea89898961488c565b50505050505050505050565b600354156140c457600080fd5b612cf281614b9f565b4290565b600080806001604060020a03841615156140ee5760009250614192565b6140f7846135e1565b6002810154909250614111906001604060020a031661359b565b90506000815460ff16600281111561412557fe5b141561413357839250614192565b6002815460ff16600281111561414557fe5b1461414c57fe5b6002820154614163906001604060020a0316610e79565b151561417157839250614192565b600282015461418f9060c060020a90046001604060020a03166140d1565b92505b5050919050565b6141a161512b565b6141b382600160a060020a0316614beb565b92915050565b6000806002835160028111156141cb57fe5b146141d257fe5b82606001516001604060020a031615156141ef5760019150610f15565b6141fc836060015161359b565b9050614223816101006040519081016040528154909190829060ff1660028111156120e957fe5b6001019392505050565b61423561512b565b6141b382614beb565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561430a57600080fd5b6102c65a03f1151561431b57600080fd5b50505060405180519250829150505b5090565b8061433c8585808685614c32565b905061434b8584868685614c32565b95945050505050565b600080614360856135e1565b91506143a18360006040518059106143755750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613612565b9050610e69858286613934565b60008060006143bc866135e1565b925060146144e5846101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116144195790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b60028111156144dd57fe5b905250614d9a565b106144ef57600080fd5b6144f884610e79565b1561450257600080fd5b600283015460018401805461459f926001604060020a031691906020808202016040519081016040528092919081815260200182805480156119a757600091825260209182902080546001604060020a031684529082028301929091600891018084116119645750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613612565b91506145df846000604051805910611a065750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613612565b9050612f20868287613934565b6000805b83602001515181101561464057826001604060020a03168460200151828151811061461757fe5b906020019060200201516001604060020a031614156146385780915061464b565b6001016145f0565b6001604060020a0391505b5092915050565b60008061465d61512b565b6000614668876135e1565b60018101549093508590036040518059106146805750595b90808252806020026020018201604052509150600090505b600183015485900381101561470b57600183018054829081106146b757fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03168282815181106146ec57fe5b6001604060020a03909216602092830290910190910152600101614698565b60028301546003840154614745916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613612565b9350614752878588613934565b5050509392505050565b600061476661512b565b600080614772876135e1565b6001810154909450600a901061478757600080fd5b6001808501540160405180591061479b5750595b90808252806020026020018201604052509250600091505b600184015482101561482657600184018054839081106147cf57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061480457fe5b6001604060020a039092166020928302909101909101526001909101906147b3565b6001840154859084908151811061483957fe5b6001604060020a03928316602091820290920101526002850154600386015461487f92828116928792600092839260c060020a90041690600160a060020a031682613612565b9050611816878288613934565b600080614898856135e1565b91506014614983836101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b1061498d57600080fd5b61499683610e79565b156149a057600080fd5b60028201546001830180546143a1926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a3357602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116149f05790505b505050505085614b5e8661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614ad557602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a925790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614b4b57fe5b6002811115614b5657fe5b905250614eb0565b6001604060020a0316614b6f6140cd565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613612565b614ba7614f48565b600160a060020a0381161515614bbc57600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b614bf361512b565b6001604051805910614c025750595b908082528060200260200182016040525090508181600081518110614c2357fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c5957610100614c5c565b60005b61ffff169250849350614c6e886135e1565b60028101546003820154919350614ca0918b916001604060020a0316908a908a908890600160a060020a03168a614f62565b9350600090505b60018201546001604060020a0382161015614d3357614d298983600101836001604060020a0316815481101515614cda57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614f62565b9350600101614ca7565b60028201546000604060020a9091046001604060020a03161115614d8e5760028201546003830154614d8b918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614f62565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dba5760009150610f15565b614dc78360a001516135e1565b9050614223816101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561445c57600091825260209182902080546001604060020a03168452908202830192909160089101808411614419575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff16908111156144d257fe5b6000806000614ec2846040015161359b565b805460a860020a90046001604060020a031693509150600090505b83602001515181101561419257614f0c84602001518281518110614efd57fe5b9060200190602002015161359b565b80549092506001604060020a0380851660a860020a909204161115614f4057815460a860020a90046001604060020a031692505b600101614edd565b60035415614f5557600080fd5b614f5d615127565b600355565b80600080614f6f8961359b565b600181015490915069010000000000000000009004600160a060020a031615801590614f9b5750600083115b1561392757891561507357600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561504257600080fd5b6102c65a03f1151561505357600080fd5b50505060405180519250508282111561506b57600080fd5b819250613927565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561510657600080fd5b6102c65a03f1151561511757600080fd5b5050505050979650505050505050565b4390565b60206040519081016040526000815290565b610100604051908101604052806000815260200161515961512b565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b81548183558181151161168357600402816004028360005260206000209182019101611683919061537d565b8154818355818115116116835760040281600402836000526020600020918201910161168391906153e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061522257805160ff191683800117855561524f565b8280016001018555821561524f579182015b8281111561524f578251825591602001919060010190615234565b5061432a929150615434565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061529c5782800160ff1982351617855561524f565b8280016001018555821561524f579182015b8281111561524f5782358255916020019190600101906152ae565b828054828255906000526020600020906003016004900481019282156153715791602002820160005b8382111561533c57835183826101000a8154816001604060020a0302191690836001604060020a0316021790555092602001926008016020816007010492830192600103026152f2565b801561536f5782816101000a8154906001604060020a03021916905560080160208160070104928301926001030261533c565b505b5061432a92915061544e565b610f4591905b8082111561432a5780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006153cd6002830182615473565b6153db600383016000615473565b50600401615383565b610f4591905b8082111561432a57600080825561540460018301826154b7565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff191690556004016153ea565b610f4591905b8082111561432a576000815560010161543a565b610f4591905b8082111561432a57805467ffffffffffffffff19168155600101615454565b50805460018160011615610100020316600290046000825580601f106154995750612cf2565b601f016020900490600052602060002090810190612cf29190615434565b508054600082556003016004900490600052602060002090810190612cf291906154345600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f8cd8f1bee87915129eaab4a9ea3ea68838e0eba1b6393b1d2f180fbc742f20c0029", - "sourceMap": "1113:10259:5:-;;;;;;;;;-1:-1:-1;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11679:478:11;;;;;;;;;;-1:-1:-1;;;;;11679:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;2117:319:7;;;;;;;;;;-1:-1:-1;;;;;2117:319:7;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4987:589:11;;;-1:-1:-1;;;;;4987:589:11;;;;;10029:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2537:611:11;;;;;;;;;;;;;-1:-1:-1;;;;;2537:611:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2537:611:11;;-1:-1:-1;;;2537:611:11;;-1:-1:-1;;;;;2537:611:11;;;;;-1:-1:-1;;;;;2537:611:11;;-1:-1:-1;2537:611:11;;-1:-1:-1;;2537:611:11;7643:901;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7643:901:11;;;;;-1:-1:-1;;;;;7643:901:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2123:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2123:313:11;;;-1:-1:-1;;;;;2123:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6330:542:11;;;;;;;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3788:522:11;;;;;;;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10898:574:11;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9248:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11679:478:11:-;11753:4;11773:21;11797;11808:9;11797:10;:21::i;:::-;11773:45;-1:-1:-1;11848:21:11;11833:11;;;;:36;;;;;;;;;11829:79;;;11892:5;11885:12;;;;11829:79;11940:23;11925:11;;;;:38;;;;;;;;;11918:46;;;;11979:10;;;;-1:-1:-1;;;11979:10:11;;;;11975:52;;;12012:4;12005:11;;;;11975:52;12040:15;;;;-1:-1:-1;;;;;12040:15:11;:20;12036:63;;;12083:5;12076:12;;;;12036:63;12134:15;;;;12116:34;;-1:-1:-1;;;;;12134:15:11;12116:17;:34::i;:::-;12109:41;;11679:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;2117:319:7:-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;:::-;;2117:319;;:::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4987:589:11:-;5138:17;5180:21;5194:6;5180:13;:21::i;:::-;5172:30;;;;;;;;-1:-1:-1;5249:6:11;:13;;;;5274:254;;;;5249:6;5274:254;;:::i;:::-;;;;;;;;;;;;5299:219;;;;;;;;;5328:24;5299:219;;;;5370:10;-1:-1:-1;;;;;5299:219:11;;;;;5398:10;-1:-1:-1;;;;;5299:219:11;;;;;5426:1;-1:-1:-1;;;;;5299:219:11;;;;;5445:5;5299:219;;;;;;5468:6;-1:-1:-1;;;;;5299:219:11;;;;;5492:4;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:3;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5299:219:11;;;;-1:-1:-1;5274:254:11;;;-1:-1:-1;5274:254:11;;-1:-1:-1;;5274:254:11;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;-1:-1:-1;;;;;;5274:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;;;;;;;;;;5274:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5553:10;-1:-1:-1;;;;;5539:30:11;;5565:3;;5539:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:589;;;;;;;;:::o;10029:101::-;10106:6;:13;-1:-1:-1;;10106:17:11;10029:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;2537:611:11:-;2705:14;2743:21;2757:6;2743:13;:21::i;:::-;2735:30;;;;;;;;-1:-1:-1;2809:6:11;:13;;;;2861:245;;;;2809:6;2861:245;;:::i;:::-;;;;;;;;;;;;2886:210;;;;;;;;;2915:21;2886:210;;-1:-1:-1;;;;;2886:210:11;;;;;;;-1:-1:-1;;;;;2886:210:11;;;;;;-1:-1:-1;2886:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:245;;-1:-1:-1;2861:245:11;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;-1:-1:-1;;;;;;2861:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;;;;;;;;;;2861:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3128:7;-1:-1:-1;;;;;3117:24:11;;3137:3;3117:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2537:611:11;;;;;;;:::o;7643:901::-;7853:16;7965:21;7894;7908:6;7894:13;:21::i;:::-;7886:30;;;;;;;;-1:-1:-1;;;;;7931:18:11;;;7927:250;;7989:25;8000:13;7989:10;:25::i;:::-;7965:49;;1096:2;8123:19;8140:1;8123:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8123:42:11;;8115:51;;;;;;8206:6;:13;;;-1:-1:-1;8206:13:11;8231:267;;;;8206:6;8231:267;;:::i;:::-;;;;;;;;;;;;8256:232;;;;;;;;;8285:23;8256:232;;;;8326:12;-1:-1:-1;;;;;8256:232:11;;;;;8356:10;-1:-1:-1;;;;;8256:232:11;;;;;8384:13;-1:-1:-1;;;;;8256:232:11;;;;;8415:5;8256:232;;;;;;8438:6;-1:-1:-1;;;;;8256:232:11;;;;;8462:4;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8484:3;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8256:232:11;;;;-1:-1:-1;8231:267:11;;;-1:-1:-1;8231:267:11;;-1:-1:-1;;8231:267:11;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;-1:-1:-1;;;;;;8231:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;;;;;;;;;;8231:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8522:9;-1:-1:-1;;;;;8509:28:11;;8533:3;;8509:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:901;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2123:313:11:-;2271:14;2308:121;2330:10;2354:4;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:3;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:10;2413:6;2308:8;:121::i;:::-;2301:128;2123:313;-1:-1:-1;;;;;;;2123:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6330:542:11:-;6513:28;6544:22;6555:10;6544;:22::i;:::-;6598:13;;6513:53;;-1:-1:-1;6584:10:11;-1:-1:-1;;;;;6584:27:11;;;6598:13;;;;;6584:27;6576:36;;;;;;6652:24;6630:18;;;;:46;;;;;;;;;6622:55;;;;;;6687:23;;-1:-1:-1;;;;;;6687:23:11;;-1:-1:-1;;;;;6687:23:11;;;;;;6720;:13;;;6736:7;;6720:23;:::i;:::-;-1:-1:-1;6753:21:11;:12;;;6768:6;;6753:21;:::i;:::-;-1:-1:-1;6784:35:11;;-1:-1:-1;;;;;6784:35:11;;;-1:-1:-1;;;6784:35:11;-1:-1:-1;;;;;;;;;;;6784:35:11;;;;;;;;;6830;;;6858:6;;6830:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:542;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3788:522:11:-;3965:25;3993:19;4004:7;3993:10;:19::i;:::-;4044:10;;3965:47;;-1:-1:-1;4030:10:11;-1:-1:-1;;;;;4030:24:11;;;4044:10;;;;;4030:24;4022:33;;;;;;4092:21;4073:15;;;;:40;;;;;;;;;4065:49;;;;;;4143:20;;-1:-1:-1;;;;;;4143:20:11;;-1:-1:-1;;;;;4143:20:11;;;;;;4173;:10;;;4186:7;;4173:20;:::i;:::-;-1:-1:-1;4203:18:11;:9;;;4215:6;;4203:18;:::i;:::-;-1:-1:-1;4231:32:11;;-1:-1:-1;;;;;4231:32:11;;;-1:-1:-1;;;4231:32:11;-1:-1:-1;;;;;;;;;;;4231:32:11;;;;;;;;;4274:29;;;4296:6;;4274:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3788:522;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10898:574:11:-;10970:25;11005:12;11027:11;;:::i;:::-;11048:10;;:::i;:::-;11068:17;11095:20;11125:13;11148:14;11179:21;11203:19;11214:7;11203:10;:19::i;:::-;11244:11;;11295:6;;;;11288:13;;11244:11;;;;-1:-1:-1;11244:11:11;11272:6;;;;-1:-1:-1;;;;;11272:6:11;;-1:-1:-1;11244:11:11;;-1:-1:-1;11295:6:11;11244:11;11288:13;;;;;;-1:-1:-1;;11288:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:1;:5;;11311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11345:12:11;;11383:15;;;;;10898:574;;;;-1:-1:-1;10898:574:11;;11311:11;;-1:-1:-1;;;11345:12:11;;;-1:-1:-1;;;;;11345:12:11;;;;-1:-1:-1;11383:15:11;;;-1:-1:-1;;;;;;11419:10:11;;;;;-1:-1:-1;11456:8:11;;;-1:-1:-1;;;;;11456:8:11;;-1:-1:-1;10898:574:11;-1:-1:-1;;10898:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9248:531:11:-;9429:27;9459:21;9470:9;9459:10;:21::i;:::-;9513:12;;9429:51;;-1:-1:-1;9499:10:11;-1:-1:-1;;;;;9499:26:11;;;9513:12;;;;;9499:26;9491:35;;;;;;9565:23;9544:17;;;;:44;;;;;;;;;9536:53;;;;;;9600:22;;-1:-1:-1;;;;;;9600:22:11;;-1:-1:-1;;;;;9600:22:11;;;;;;9632;:12;;;9647:7;;9632:22;:::i;:::-;-1:-1:-1;9664:20:11;:11;;;9678:6;;9664:20;:::i;:::-;-1:-1:-1;9694:34:11;;-1:-1:-1;;;;;9694:34:11;;;-1:-1:-1;;;9694:34:11;-1:-1:-1;;;;;;;;;;;9694:34:11;;;;;;;;;9739:33;;;9765:6;;9739:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12395:161:11:-;12503:6;:13;12454:11;;-1:-1:-1;;;;;12493:23:11;;;12485:32;;;;;;12534:6;:15;;-1:-1:-1;;;;;12534:15:11;;;;;;;;;;;;;;;;;;;12527:22;;12395:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;25384:76:7:-;25450:3;25384:76;:::o;18983:583::-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12772:316:11:-;12835:6;;12875:23;12860:1;:11;:38;;;;;;;;;12853:46;;;;12914:1;:15;;;-1:-1:-1;;;;;12914:20:11;;12910:60;;;12957:1;12950:9;;;;12910:60;13009:27;13020:1;:15;;;13009:10;:27::i;:::-;12980:56;;13053:24;13070:6;13053:24;;;;;;;;;;;;;;;;;;;;;;;;;13080:1;13053:28;;12772:316;-1:-1:-1;;;12772:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;3449:195:0:-;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;487:96:26;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;767:94:26:-;842:12;767:94;:::o;1113:10259:5:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1113:10259:5;;;-1:-1:-1;1113:10259:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1113:10259:5;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1113:10259:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "4366400", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "ESCAPE_HATCH_CALLER_ROLE()": "1100", - "EVMSCRIPT_REGISTRY_APP()": "1189", - "EVMSCRIPT_REGISTRY_APP_ID()": "726", - "PLUGIN_MANAGER_ROLE()": "infinite", - "addDelegate(string,string,uint64,address)": "infinite", - "addGiver(address,string,string,uint64,address)": "infinite", - "addGiver(string,string,uint64,address)": "infinite", - "addGiverAndDonate(uint64,address,address,uint256)": "infinite", - "addGiverAndDonate(uint64,address,uint256)": "infinite", - "addProject(string,string,address,uint64,uint64,address)": "infinite", - "addValidPluginContract(bytes32)": "infinite", - "addValidPluginContracts(bytes32[])": "infinite", - "addValidPluginInstance(address)": "infinite", - "appId()": "1030", - "canPerform(address,bytes32,uint256[])": "infinite", - "cancelPayment(uint64,uint256)": "infinite", - "cancelPledge(uint64,uint256)": "infinite", - "cancelProject(uint64)": "infinite", - "confirmPayment(uint64,uint256)": "infinite", - "donate(uint64,uint64,address,uint256)": "infinite", - "escapeHatch(address)": "infinite", - "escapeHatchDestination()": "1645", - "getCodeHash(address)": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "1096", - "getPledge(uint64)": "infinite", - "getPledgeAdmin(uint64)": "infinite", - "getPledgeDelegate(uint64,uint64)": "infinite", - "initialize(address)": "1322", - "initialize(address,address)": "infinite", - "isProjectCanceled(uint64)": "infinite", - "isTokenEscapable(address)": "1311", - "isValidPlugin(address)": "infinite", - "kernel()": "1513", - "mCancelPayment(uint256[])": "infinite", - "mConfirmPayment(uint256[])": "infinite", - "mNormalizePledge(uint64[])": "infinite", - "mTransfer(uint64,uint256[],uint64)": "infinite", - "mWithdraw(uint256[])": "infinite", - "normalizePledge(uint64)": "infinite", - "numberOfPledgeAdmins()": "819", - "numberOfPledges()": "534", - "removeValidPluginContract(bytes32)": "infinite", - "removeValidPluginInstance(address)": "infinite", - "transfer(uint64,uint64,uint256,uint64)": "infinite", - "updateDelegate(uint64,address,string,string,uint64)": "infinite", - "updateGiver(uint64,address,string,string,uint64)": "infinite", - "updateProject(uint64,address,string,string,uint64)": "infinite", - "useWhitelist(bool)": "infinite", - "vault()": "1722", - "whitelistDisabled()": "470", - "withdraw(uint64,uint256)": "infinite" - } - }, - "methodIdentifiers": { - "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "PLUGIN_MANAGER_ROLE()": "24fea3b0", - "addDelegate(string,string,uint64,address)": "52dc7dcc", - "addGiver(address,string,string,uint64,address)": "6e802c6a", - "addGiver(string,string,uint64,address)": "7f61fa93", - "addGiverAndDonate(uint64,address,address,uint256)": "007611c6", - "addGiverAndDonate(uint64,address,uint256)": "6ba3cc87", - "addProject(string,string,address,uint64,uint64,address)": "72116e92", - "addValidPluginContract(bytes32)": "c8ae070f", - "addValidPluginContracts(bytes32[])": "32ce8ebc", - "addValidPluginInstance(address)": "79f4542e", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "cancelPayment(uint64,uint256)": "e9c211e2", - "cancelPledge(uint64,uint256)": "af9f4563", - "cancelProject(uint64)": "796d5654", - "confirmPayment(uint64,uint256)": "2ee88808", - "donate(uint64,uint64,address,uint256)": "4c4316c7", - "escapeHatch(address)": "a142d608", - "escapeHatchDestination()": "f5b61230", - "getCodeHash(address)": "81ea4408", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "getPledge(uint64)": "3f657a46", - "getPledgeAdmin(uint64)": "eba8ba06", - "getPledgeDelegate(uint64,uint64)": "2f6b64ca", - "initialize(address)": "c4d66de8", - "initialize(address,address)": "485cc955", - "isProjectCanceled(uint64)": "2101a6ad", - "isTokenEscapable(address)": "892db057", - "isValidPlugin(address)": "4eafbcd5", - "kernel()": "d4aae0c4", - "mCancelPayment(uint256[])": "ef3766e4", - "mConfirmPayment(uint256[])": "9398f5a2", - "mNormalizePledge(uint64[])": "ce17273c", - "mTransfer(uint64,uint256[],uint64)": "d639cd73", - "mWithdraw(uint256[])": "57adafb6", - "normalizePledge(uint64)": "50f8a803", - "numberOfPledgeAdmins()": "5503d9ba", - "numberOfPledges()": "2a8ec8cc", - "removeValidPluginContract(bytes32)": "b12b5f76", - "removeValidPluginInstance(address)": "6293c702", - "transfer(uint64,uint64,uint256,uint64)": "47c5ef43", - "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", - "updateGiver(uint64,address,string,string,uint64)": "db7c2314", - "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", - "useWhitelist(bool)": "38740291", - "vault()": "fbfa77cf", - "whitelistDisabled()": "1c8e8568", - "withdraw(uint64,uint256)": "43387983" - } - }, - "userdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" - }, - "addGiver(string,string,uint64,address)": { - "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" - }, - "cancelPayment(uint64,uint256)": { - "notice": "`onlyVault` Cancels a withdraw request, changing the PledgeState from Paying back to Pledged" - }, - "cancelPledge(uint64,uint256)": { - "notice": "Transfers `amount` in `idPledge` back to the `oldPledge` that that sent it there in the first place, a Ctrl-z " - }, - "cancelProject(uint64)": { - "notice": "Changes the `project.canceled` flag to `true`; cannot be undone" - }, - "confirmPayment(uint64,uint256)": { - "notice": "`onlyVault` Confirms a withdraw request changing the PledgeState from Paying to Paid" - }, - "donate(uint64,uint64,address,uint256)": { - "notice": "This is how value enters the system and how pledges are created; the ether is sent to the vault, an pledge for the Giver is created (or found), the amount of ETH donated in wei is added to the `amount` in the Giver's Pledge, and an LP transfer is done to the idReceiver for the full amount" - }, - "escapeHatch(address)": { - "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" - }, - "getPledge(uint64)": { - "notice": "A getter that returns the details of the specified pledge" - }, - "getPledgeAdmin(uint64)": { - "notice": "A constant getter to check the details of a specified Admin" - }, - "getPledgeDelegate(uint64,uint64)": { - "notice": "//////////////////////////Getter to find Delegate w/ the Pledge ID & the Delegate index" - }, - "initialize(address)": { - "notice": "////////////" - }, - "isProjectCanceled(uint64)": { - "notice": "A getter to find if a specified Project has been canceled" - }, - "isTokenEscapable(address)": { - "notice": "Checks to see if `_token` is in the blacklist of tokens" - }, - "mCancelPayment(uint256[])": { - "notice": "`mCancelPayment` allows for multiple pledges to be canceled efficiently" - }, - "mConfirmPayment(uint256[])": { - "notice": "`mConfirmPayment` allows for multiple pledges to be confirmed efficiently" - }, - "mNormalizePledge(uint64[])": { - "notice": "`mNormalizePledge` allows for multiple pledges to be normalized efficiently" - }, - "mTransfer(uint64,uint256[],uint64)": { - "notice": "Transfers multiple amounts within multiple Pledges in an efficient single call " - }, - "mWithdraw(uint256[])": { - "notice": "Authorizes multiple amounts within multiple Pledges to be withdrawn from the `vault` in an efficient single call " - }, - "normalizePledge(uint64)": { - "notice": "////////////////Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" - }, - "numberOfPledgeAdmins()": { - "notice": "//////////////////////////A constant getter used to check how many total Admins exist" - }, - "numberOfPledges()": { - "notice": "/////////////////////////A constant getter that returns the total number of pledges" - }, - "transfer(uint64,uint64,uint256,uint64)": { - "notice": "Transfers amounts between pledges for internal accounting" - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" - }, - "updateGiver(uint64,address,string,string,uint64)": { - "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" - }, - "updateProject(uint64,address,string,string,uint64)": { - "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" - }, - "withdraw(uint64,uint256)": { - "notice": "Authorizes a payment be made from the `vault` can be used by the Giver to veto a pre-committed donation from a Delegate to an intendedProject" - } - } - } - } - }, - "./contracts/LiquidPledgingACLHelpers.sol": { - "LiquidPledgingACLHelpers": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029", - "sourceMap": "26:482:6:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600080fd00a165627a7a723058206973d85c28cf65c663e788b11ff59a0e1ad645176781c9df02b74ed0907ba89a0029", - "sourceMap": "26:482:6:-;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "10600", - "executionCost": "61", - "totalCost": "10661" - }, - "internal": { - "arr(bool)": "infinite", - "arr(uint64,uint64,address,uint256,address)": "infinite" - } - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "./contracts/LiquidPledgingBase.sol": { - "LiquidPledgingBase": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "whitelistDisabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "projectId", - "type": "uint64" - } - ], - "name": "isProjectCanceled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "PLUGIN_MANAGER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledges", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "idxDelegate", - "type": "uint64" - } - ], - "name": "getPledgeDelegate", - "outputs": [ - { - "name": "idDelegate", - "type": "uint64" - }, - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHashes", - "type": "bytes32[]" - } - ], - "name": "addValidPluginContracts", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "useWhitelist", - "type": "bool" - } - ], - "name": "useWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - } - ], - "name": "getPledge", - "outputs": [ - { - "name": "amount", - "type": "uint256" - }, - { - "name": "owner", - "type": "uint64" - }, - { - "name": "nDelegates", - "type": "uint64" - }, - { - "name": "intendedProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "oldPledge", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "pledgeState", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_vault", - "type": "address" - }, - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "isValidPlugin", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - } - ], - "name": "normalizePledge", - "outputs": [ - { - "name": "", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addDelegate", - "outputs": [ - { - "name": "idDelegate", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledgeAdmins", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "removeValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "projectAdmin", - "type": "address" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addProject", - "outputs": [ - { - "name": "idProject", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "addValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "getCodeHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "isTokenEscapable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "escapeHatch", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ESCAPE_HATCH_CALLER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "removeValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "addValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idDelegate", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateDelegate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idGiver", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateGiver", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idAdmin", - "type": "uint64" - } - ], - "name": "getPledgeAdmin", - "outputs": [ - { - "name": "adminType", - "type": "uint8" - }, - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "canceled", - "type": "bool" - }, - { - "name": "plugin", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "escapeHatchDestination", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idProject", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateProject", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vault", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "uint256" - }, - { - "indexed": true, - "name": "to", - "type": "uint256" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint256" - } - ], - "name": "CancelProject", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - } - ], - "name": "EscapeHatchBlackistedToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "EscapeHatchCalled", - "type": "event" - } - ], - "devdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "name": "The name used to identify the Delegate", - "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Delegate's profile often an IPFS hash" - }, - "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" - }, - "addGiver(string,string,uint64,address)": { - "params": { - "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "name": "The name used to identify the Giver", - "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Giver's profile often an IPFS hash" - }, - "return": "idGiver The id number used to reference this Admin" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", - "name": "The name used to identify the Project", - "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", - "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", - "projectAdmin": "The address for the trusted project manager", - "url": "The link to the Project's profile often an IPFS hash" - }, - "return": "idProject The id number used to reference this Admin" - }, - "escapeHatch(address)": { - "params": { - "_token": "to transfer, use 0x0 for ether" - } - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "getPledge(uint64)": { - "params": { - "idPledge": "the id number of the pledge being queried" - }, - "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" - }, - "getPledgeAdmin(uint64)": { - "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" - }, - "getPledgeDelegate(uint64,uint64)": { - "params": { - "idPledge": "The id number representing the pledge being queried", - "idxDelegate": "The index number for the delegate in this Pledge " - } - }, - "initialize(address,address)": { - "params": { - "_escapeHatchDestination": "The address of a safe location (usu a Multisig) to send the ether held in this contract; if a neutral address is required, the WHG Multisig is an option: 0x8Ff920020c8AD673661c8117f2855C384758C572 ", - "_vault": "The vault where the ETH backing the pledges is stored" - } - }, - "isProjectCanceled(uint64)": { - "params": { - "projectId": "The Admin id number used to specify the Project" - }, - "return": "True if the Project has been canceled" - }, - "isTokenEscapable(address)": { - "params": { - "_token": "the token address being queried" - }, - "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" - }, - "normalizePledge(uint64)": { - "params": { - "idPledge": "This is the id of the pledge that will be normalized" - }, - "return": "The normalized Pledge!" - }, - "numberOfPledgeAdmins()": { - "return": "The total number of admins (Givers, Delegates and Projects) ." - }, - "numberOfPledges()": { - "return": "The total number of Pledges in the system" - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "params": { - "idDelegate": "The Admin id number used to specify the Delegate", - "newAddr": "The new address that represents this Delegate", - "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "newName": "The new name used to identify the Delegate", - "newUrl": "The new link to the Delegate's profile often an IPFS hash" - } - }, - "updateGiver(uint64,address,string,string,uint64)": { - "params": { - "idGiver": "This is the Admin id number used to specify the Giver", - "newAddr": "The new address that represents this Giver", - "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "newName": "The new name used to identify the Giver", - "newUrl": "The new link to the Giver's profile often an IPFS hash" - } - }, - "updateProject(uint64,address,string,string,uint64)": { - "params": { - "idProject": "The Admin id number used to specify the Project", - "newAddr": "The new address that represents this Project", - "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", - "newName": "The new name used to identify the Project", - "newUrl": "The new link to the Project's profile often an IPFS hash" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "PLUGIN_MANAGER_ROLE()": "24fea3b0", - "addDelegate(string,string,uint64,address)": "52dc7dcc", - "addGiver(address,string,string,uint64,address)": "6e802c6a", - "addGiver(string,string,uint64,address)": "7f61fa93", - "addProject(string,string,address,uint64,uint64,address)": "72116e92", - "addValidPluginContract(bytes32)": "c8ae070f", - "addValidPluginContracts(bytes32[])": "32ce8ebc", - "addValidPluginInstance(address)": "79f4542e", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "escapeHatch(address)": "a142d608", - "escapeHatchDestination()": "f5b61230", - "getCodeHash(address)": "81ea4408", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "getPledge(uint64)": "3f657a46", - "getPledgeAdmin(uint64)": "eba8ba06", - "getPledgeDelegate(uint64,uint64)": "2f6b64ca", - "initialize(address)": "c4d66de8", - "initialize(address,address)": "485cc955", - "isProjectCanceled(uint64)": "2101a6ad", - "isTokenEscapable(address)": "892db057", - "isValidPlugin(address)": "4eafbcd5", - "kernel()": "d4aae0c4", - "normalizePledge(uint64)": "50f8a803", - "numberOfPledgeAdmins()": "5503d9ba", - "numberOfPledges()": "2a8ec8cc", - "removeValidPluginContract(bytes32)": "b12b5f76", - "removeValidPluginInstance(address)": "6293c702", - "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", - "updateGiver(uint64,address,string,string,uint64)": "db7c2314", - "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", - "useWhitelist(bool)": "38740291", - "vault()": "fbfa77cf", - "whitelistDisabled()": "1c8e8568" - } - }, - "userdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" - }, - "addGiver(string,string,uint64,address)": { - "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" - }, - "escapeHatch(address)": { - "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" - }, - "getPledge(uint64)": { - "notice": "A getter that returns the details of the specified pledge" - }, - "getPledgeAdmin(uint64)": { - "notice": "A constant getter to check the details of a specified Admin" - }, - "getPledgeDelegate(uint64,uint64)": { - "notice": "//////////////////////////Getter to find Delegate w/ the Pledge ID & the Delegate index" - }, - "initialize(address)": { - "notice": "////////////" - }, - "isProjectCanceled(uint64)": { - "notice": "A getter to find if a specified Project has been canceled" - }, - "isTokenEscapable(address)": { - "notice": "Checks to see if `_token` is in the blacklist of tokens" - }, - "normalizePledge(uint64)": { - "notice": "////////////////Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" - }, - "numberOfPledgeAdmins()": { - "notice": "//////////////////////////A constant getter used to check how many total Admins exist" - }, - "numberOfPledges()": { - "notice": "/////////////////////////A constant getter that returns the total number of pledges" - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" - }, - "updateGiver(uint64,address,string,string,uint64)": { - "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" - }, - "updateProject(uint64,address,string,string,uint64)": { - "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" - } - } - } - } - }, - "./contracts/LiquidPledgingMock.sol": { - "LiquidPledgingMock": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "idReceiver", - "type": "uint64" - }, - { - "name": "donorAddress", - "type": "address" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "addGiverAndDonate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "whitelistDisabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "projectId", - "type": "uint64" - } - ], - "name": "isProjectCanceled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "PLUGIN_MANAGER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledges", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "confirmPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "idxDelegate", - "type": "uint64" - } - ], - "name": "getPledgeDelegate", - "outputs": [ - { - "name": "idDelegate", - "type": "uint64" - }, - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHashes", - "type": "bytes32[]" - } - ], - "name": "addValidPluginContracts", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "useWhitelist", - "type": "bool" - } - ], - "name": "useWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - } - ], - "name": "getPledge", - "outputs": [ - { - "name": "amount", - "type": "uint256" - }, - { - "name": "owner", - "type": "uint64" - }, - { - "name": "nDelegates", - "type": "uint64" - }, - { - "name": "intendedProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "oldPledge", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "pledgeState", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idSender", - "type": "uint64" - }, - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "idReceiver", - "type": "uint64" - } - ], - "name": "transfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_vault", - "type": "address" - }, - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idGiver", - "type": "uint64" - }, - { - "name": "idReceiver", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "donate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "isValidPlugin", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - } - ], - "name": "normalizePledge", - "outputs": [ - { - "name": "", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addDelegate", - "outputs": [ - { - "name": "idDelegate", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledgeAdmins", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgesAmounts", - "type": "uint256[]" - } - ], - "name": "mWithdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "removeValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idReceiver", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "addGiverAndDonate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "projectAdmin", - "type": "address" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addProject", - "outputs": [ - { - "name": "idProject", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idProject", - "type": "uint64" - } - ], - "name": "cancelProject", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "addValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "getCodeHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "isTokenEscapable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgesAmounts", - "type": "uint256[]" - } - ], - "name": "mConfirmPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "mock_time", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_token", - "type": "address" - } - ], - "name": "escapeHatch", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_t", - "type": "uint256" - } - ], - "name": "setMockedTime", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "cancelPledge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ESCAPE_HATCH_CALLER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "removeValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "addValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idDelegate", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateDelegate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledges", - "type": "uint64[]" - } - ], - "name": "mNormalizePledge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idSender", - "type": "uint64" - }, - { - "name": "pledgesAmounts", - "type": "uint256[]" - }, - { - "name": "idReceiver", - "type": "uint64" - } - ], - "name": "mTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idGiver", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateGiver", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "cancelPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idAdmin", - "type": "uint64" - } - ], - "name": "getPledgeAdmin", - "outputs": [ - { - "name": "adminType", - "type": "uint8" - }, - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "canceled", - "type": "bool" - }, - { - "name": "plugin", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgesAmounts", - "type": "uint256[]" - } - ], - "name": "mCancelPayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "escapeHatchDestination", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idProject", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateProject", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vault", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_escapeHatchDestination", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "uint256" - }, - { - "indexed": true, - "name": "to", - "type": "uint256" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint256" - } - ], - "name": "CancelProject", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - } - ], - "name": "EscapeHatchBlackistedToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "EscapeHatchCalled", - "type": "event" - } - ], - "devdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "name": "The name used to identify the Delegate", - "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Delegate's profile often an IPFS hash" - }, - "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" - }, - "addGiver(string,string,uint64,address)": { - "params": { - "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "name": "The name used to identify the Giver", - "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Giver's profile often an IPFS hash" - }, - "return": "idGiver The id number used to reference this Admin" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", - "name": "The name used to identify the Project", - "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", - "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", - "projectAdmin": "The address for the trusted project manager", - "url": "The link to the Project's profile often an IPFS hash" - }, - "return": "idProject The id number used to reference this Admin" - }, - "cancelPayment(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be canceled", - "idPledge": "Id of the pledge that's withdraw is to be canceled" - } - }, - "cancelPledge(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be transfered to the `oldPledge`", - "idPledge": "Id of the pledge that is to be canceled" - } - }, - "cancelProject(uint64)": { - "params": { - "idProject": "Id of the project that is to be canceled" - } - }, - "confirmPayment(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be withdrawn", - "idPledge": "Id of the pledge that is to be withdrawn" - } - }, - "donate(uint64,uint64,address,uint256)": { - "params": { - "idGiver": "The id of the Giver donating", - "idReceiver": "The Admin receiving the donation; can be any Admin: the Giver themselves, another Giver, a Delegate or a Project" - } - }, - "escapeHatch(address)": { - "params": { - "_token": "to transfer, use 0x0 for ether" - } - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "getPledge(uint64)": { - "params": { - "idPledge": "the id number of the pledge being queried" - }, - "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" - }, - "getPledgeAdmin(uint64)": { - "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" - }, - "getPledgeDelegate(uint64,uint64)": { - "params": { - "idPledge": "The id number representing the pledge being queried", - "idxDelegate": "The index number for the delegate in this Pledge " - } - }, - "initialize(address,address)": { - "details": "`LiquidPledgingMock` creates a standard `LiquidPledging` instance and sets the mocked time to the current blocktime." - }, - "isProjectCanceled(uint64)": { - "params": { - "projectId": "The Admin id number used to specify the Project" - }, - "return": "True if the Project has been canceled" - }, - "isTokenEscapable(address)": { - "params": { - "_token": "the token address being queried" - }, - "return": "False if `_token` is in the blacklist and can't be taken out of the contract via the `escapeHatch()`" - }, - "mCancelPayment(uint256[])": { - "params": { - "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" - } - }, - "mConfirmPayment(uint256[])": { - "params": { - "pledgesAmounts": "An array of pledge amounts and IDs which are extrapolated using the D64 bitmask" - } - }, - "mNormalizePledge(uint64[])": { - "params": { - "pledges": "An array of pledge IDs" - } - }, - "mTransfer(uint64,uint256[],uint64)": { - "params": { - "idReceiver": "Destination of the `pledesAmounts`, can be a Giver or Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", - "idSender": "Id of the Admin that is transferring the amounts from all the Pledges; this admin must have permissions to move the value", - "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" - } - }, - "mWithdraw(uint256[])": { - "params": { - "pledgesAmounts": "An array of Pledge amounts and the idPledges with which the amounts are associated; these are extrapolated using the D64 bitmask" - } - }, - "normalizePledge(uint64)": { - "params": { - "idPledge": "This is the id of the pledge that will be normalized" - }, - "return": "The normalized Pledge!" - }, - "numberOfPledgeAdmins()": { - "return": "The total number of admins (Givers, Delegates and Projects) ." - }, - "numberOfPledges()": { - "return": "The total number of Pledges in the system" - }, - "setMockedTime(uint256)": { - "details": "`setMockedTime` is a basic setter function for the mock_time parameter", - "params": { - "_t": "This is the value to which the mocked time will be set." - } - }, - "transfer(uint64,uint64,uint256,uint64)": { - "params": { - "amount": "Quantity of ETH (in wei) that this pledge is transferring the authority to withdraw from the vault", - "idPledge": "Id of the pledge that's moving the value", - "idReceiver": "Destination of the `amount`, can be a Giver/Project sending to a Giver, a Delegate or a Project; a Delegate sending to another Delegate, or a Delegate pre-commiting it to a Project ", - "idSender": "Id of the Admin that is transferring the amount from Pledge to Pledge; this admin must have permissions to move the value" - } - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "params": { - "idDelegate": "The Admin id number used to specify the Delegate", - "newAddr": "The new address that represents this Delegate", - "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "newName": "The new name used to identify the Delegate", - "newUrl": "The new link to the Delegate's profile often an IPFS hash" - } - }, - "updateGiver(uint64,address,string,string,uint64)": { - "params": { - "idGiver": "This is the Admin id number used to specify the Giver", - "newAddr": "The new address that represents this Giver", - "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "newName": "The new name used to identify the Giver", - "newUrl": "The new link to the Giver's profile often an IPFS hash" - } - }, - "updateProject(uint64,address,string,string,uint64)": { - "params": { - "idProject": "The Admin id number used to specify the Project", - "newAddr": "The new address that represents this Project", - "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", - "newName": "The new name used to identify the Project", - "newUrl": "The new link to the Project's profile often an IPFS hash" - } - }, - "withdraw(uint64,uint256)": { - "params": { - "amount": "Quantity of ether (in wei) to be authorized", - "idPledge": "Id of the pledge that is to be redeemed into ether" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052607f805460ff1916905534156200001a57600080fd5b60405160208062005698833981016040528080519150819050806200004d8164010000000062004f676200005682021704565b505050620000d5565b6200006e64010000000062005178620000a682021704565b600160a060020a03811615156200008457600080fd5b60648054600160a060020a031916600160a060020a0392909216919091179055565b60035415620000b457600080fd5b620000cc64010000000062005192620000d182021704565b600355565b4390565b6155b380620000e56000396000f30060606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029", - "sourceMap": "1086:946:8:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;1167:115:8;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1167:115:8;;-1:-1:-1;1167:115:8;1809:30:0;1167:115:8;1809:5:0;;;;;;:30;:::i;:::-;1737:109;1166::5;1167:115:8;1086:946;;3449:195:0;3516:13;:11;;;;;;:13;:::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;;;;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;;;;;;:16;:::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1086:946:8:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361061026d5763ffffffff60e060020a6000350416627611c681146102725780631c8e8568146102a85780632101a6ad146102cf57806324fea3b0146102ee5780632a8ec8cc146103135780632ee88808146103265780632f6b64ca1461034857806332ce8ebc1461040457806338740291146104225780633f657a461461043a57806343387983146104c857806347c5ef43146104ea578063485cc955146105195780634c4316c71461053e5780634eafbcd51461057257806350f8a8031461059157806352dc7dcc146105cc5780635503d9ba1461060e57806357adafb61461062157806360b1e057146106705780636293c702146106835780636ba3cc87146106a25780636e802c6a146106d057806372116e921461078a578063796d5654146107db57806379f4542e146107fa5780637f61fa931461081957806380afdea81461085b57806381ea44081461086e578063892db0571461088d5780638b3dd749146108ac5780639398f5a2146108bf5780639b3fdf4c1461090e5780639da47a6b14610921578063a142d60814610934578063a1658fad14610953578063ab8be231146109b6578063af9f4563146109cc578063b09927a1146109ee578063b12b5f7614610a01578063c4d66de814610a17578063c8ae070f14610a36578063cc19ecf714610a4c578063ce17273c14610a98578063d4aae0c414610ae7578063d639cd7314610b16578063db7c231414610b7e578063e9c211e214610bca578063eba8ba0614610bec578063ef3766e414610d42578063f5b6123014610d91578063f6b24b1c14610da4578063f92a79ff14610df0578063fbfa77cf14610e41575b600080fd5b341561027d57600080fd5b6102a66001604060020a0360043516600160a060020a0360243581169060443516606435610e54565b005b34156102b357600080fd5b6102bb610eaf565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102bb6001604060020a0360043516610eb8565b34156102f957600080fd5b610301610f5a565b60405190815260200160405180910390f35b341561031e57600080fd5b610301610f7c565b341561033157600080fd5b6102a66001604060020a0360043516602435610f87565b341561035357600080fd5b61036d6001604060020a03600435811690602435166110bb565b6040516001604060020a0384168152600160a060020a038316602082015260606040820181815290820183818151815260200191508051906020019080838360005b838110156103c75780820151838201526020016103af565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561040f57600080fd5b6102a660048035602481019101356111e9565b341561042d57600080fd5b6102a6600435151561127d565b341561044557600080fd5b6104596001604060020a03600435166112e3565b6040518881526001604060020a038089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e081018260028111156104ad57fe5b60ff1681526020019850505050505050505060405180910390f35b34156104d357600080fd5b6102a66001604060020a0360043516602435611460565b34156104f557600080fd5b6102a66001604060020a036004358116906024358116906044359060643516611647565b341561052457600080fd5b6102a6600160a060020a036004358116906024351661165c565b341561054957600080fd5b6102a66001604060020a0360043581169060243516600160a060020a036044351660643561167b565b341561057d57600080fd5b6102bb600160a060020a0360043516611812565b341561059c57600080fd5b6105b06001604060020a0360043516611889565b6040516001604060020a03909116815260200160405180910390f35b34156105d757600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516611a7e565b341561061957600080fd5b610301611d0b565b341561062c57600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611d1595505050505050565b341561067b57600080fd5b610301611d80565b341561068e57600080fd5b6102a6600160a060020a0360043516611db4565b34156106ad57600080fd5b6102a66001604060020a0360043516600160a060020a0360243516604435611e15565b34156106db57600080fd5b6105b060048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650505083356001604060020a03169360200135600160a060020a03169250611e26915050565b341561079557600080fd5b6105b06024600480358281019290820135918135918201910135600160a060020a036044358116906001604060020a036064358116916084359091169060a43516612089565b34156107e657600080fd5b6102a66001604060020a0360043516612536565b341561080557600080fd5b6102a6600160a060020a03600435166125a0565b341561082457600080fd5b6105b060246004803582810192908201359181359182019101356001604060020a0360443516600160a060020a0360643516612618565b341561086657600080fd5b610301612694565b341561087957600080fd5b610301600160a060020a036004351661269a565b341561089857600080fd5b6102bb600160a060020a036004351661271c565b34156108b757600080fd5b61030161273b565b34156108ca57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061274195505050505050565b341561091957600080fd5b6103016127ac565b341561092c57600080fd5b610301612828565b341561093f57600080fd5b6102a6600160a060020a036004351661282e565b341561095e57600080fd5b6102bb60048035600160a060020a0316906024803591906064906044359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650612a8495505050505050565b34156109c157600080fd5b6102a6600435612bc2565b34156109d757600080fd5b6102a66001604060020a0360043516602435612bc7565b34156109f957600080fd5b610301612c5c565b3415610a0c57600080fd5b6102a6600435612c90565b3415610a2257600080fd5b6102a6600160a060020a0360043516612ce8565b3415610a4157600080fd5b6102a6600435612cf8565b3415610a5757600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612d67565b3415610aa357600080fd5b6102a66004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650612e7095505050505050565b3415610af257600080fd5b610afa612ea7565b604051600160a060020a03909116815260200160405180910390f35b3415610b2157600080fd5b6102a6600480356001604060020a0316906044602480359081019083013580602080820201604051908101604052809392919081815260200183836020028082843750949650505092356001604060020a03169250612eb6915050565b3415610b8957600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516612f2b565b3415610bd557600080fd5b6102a66001604060020a0360043516602435613034565b3415610bf757600080fd5b610c0b6001604060020a036004351661315c565b60405180896002811115610c1b57fe5b60ff168152600160a060020a0389811660208301526001604060020a038781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b83811015610c9c578082015183820152602001610c84565b50505050905090810190601f168015610cc95780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b83811015610cff578082015183820152602001610ce7565b50505050905090810190601f168015610d2c5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b3415610d4d57600080fd5b6102a6600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061332b95505050505050565b3415610d9c57600080fd5b610afa613396565b3415610daf57600080fd5b6102a6600480356001604060020a039081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166133a5565b3415610dfb57600080fd5b610afa60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506134ae95505050505050565b3415610e4c57600080fd5b610afa61358a565b6000600160a060020a0384161515610e6b57600080fd5b610e9a846020604051908101604052806000815250602060405190810160405260008082526203f48090611e26565b9050610ea88186858561167b565b5050505050565b607f5460ff1681565b600080610ec48361359e565b90506000815460ff166002811115610ed857fe5b1415610ee75760009150610f54565b6002815460ff166002811115610ef957fe5b14610f0057fe5b6001810154604060020a900460ff1615610f1d5760019150610f54565b60018101546001604060020a03161515610f3a5760009150610f54565b6001810154610f51906001604060020a0316610eb8565b91505b50919050565b6040516000805160206155488339815191528152601301604051809103902081565b607b54600019015b90565b607f54600090819033600160a060020a039081166101009092041614610fac57600080fd5b610fb5846135e4565b91506001600383015460a060020a900460ff166002811115610fd357fe5b14610fdd57600080fd5b60028201546001830180546110a8926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561107057602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161102d5790505b50505050600286810154600388015460009350839260c060020a9092046001604060020a031691600160a060020a0390911690613615565b90506110b5848285613937565b50505050565b6000806110c6615196565b6000806110d2876135e4565b915081600101600187036001604060020a03168154811015156110f157fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031694506111258561359e565b90508060000160019054906101000a9004600160a060020a03169350806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111d95780601f106111ae576101008083540402835291602001916111d9565b820191906000526020600020905b8154815290600101906020018083116111bc57829003601f168201915b5050505050925050509250925092565b6000604051600080516020615548833981519152815260130160405180910390206112343382600060405180591061121e5750595b9080825280602002602001820160405250612a84565b151561123f57600080fd5b600091505b60ff8216839010156110b557611272848460ff851681811061126257fe5b9050602002013560001916612cf8565b600190910190611244565b604051600080516020615548833981519152815260130160405180910390206112c53382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156112d057600080fd5b50607f805460ff19169115919091179055565b6000806000806000806000806112f76151a8565b6113008a6135e4565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561139857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116113555790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561140e57fe5b600281111561141957fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b600080600061146e85611889565b9450611479856135e4565b92506000600384015460a060020a900460ff16600281111561149757fe5b146114a157600080fd5b60028301546114b8906001604060020a03166139f7565b6002830154600184018054611580926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561154b57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116115085790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a03166001613615565b915061158d858386613937565b60028301546115a4906001604060020a031661359e565b607f5481546003860154929350600160a060020a036101009283900481169363a5426df1936001604060020a0388169304821691168860405160e060020a63ffffffff87160281526004810194909452600160a060020a039283166024850152911660448301526064820152608401600060405180830381600087803b151561162c57600080fd5b6102c65a03f1151561163d57600080fd5b5050505050505050565b611650846139f7565b6110b584848484613a4e565b6003541561166957600080fd5b61167382826140ba565b50504260b255565b600080806001604060020a03871681901161169557600080fd5b600084116116a257600080fd5b600160a060020a03851615156116b757600080fd5b6116c08761359e565b92506000835460ff1660028111156116d457fe5b146116de57600080fd5b607f54600160a060020a03808716916323b872dd9133916101009004168760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b50505060405180519050151561177a57600080fd5b6117ab87600060405180591061178d5750595b908082528060200260200182016040525060008060008a6000613615565b91506117b6826135e4565b80548501815590506001604060020a03821660007faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68660405190815260200160405180910390a361180987838689613a4e565b50505050505050565b607f54600090819060ff168061182f5750600160a060020a038316155b1561183d5760019150610f54565b600160a060020a0383166000908152607e602052604090205460ff16156118675760019150610f54565b6118708361269a565b6000908152607d602052604090205460ff169392505050565b600080600080611898856135e4565b92506000600384015460a060020a900460ff1660028111156118b657fe5b146118c357849350611a76565b60028301546000604060020a9091046001604060020a031611801561190257506002830154608060020a90046001604060020a0316611900614120565b115b15611a455760028301546001840180546119ce926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116119575790505b505050506002870154600388015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b6002840154909250611a2590604060020a90046001604060020a031660006040518059106119f95750595b9080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050611a3685828560000154613937565b809450611a42856135e4565b92505b611a4e85614126565b90506001604060020a0380821690861614611a7257611a7285828560000154613937565b8093505b505050919050565b6000611a8982611812565b1515611a9457600080fd5b50607a8054908160018101611aa983826151f4565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a03168152602001876001604060020a0316815260200160006001604060020a0316815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115611b9a57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611c8b929160200190615220565b5060e082015181600301908051611ca6929160200190615220565b50505050806001604060020a03167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b607a546000190190565b600080805b83518310156110b5576001604060020a03848481518110611d3757fe5b90602001906020020151169150604060020a848481518110611d5557fe5b90602001906020020151811515611d6857fe5b049050611d758282611460565b600190920191611d1a565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160008051602061554883398151915281526013016040518091039020611ddc826141ee565b611de7338383612a84565b1515611df257600080fd5b5050600160a060020a03166000908152607e60205260409020805460ff19169055565b611e2183338484610e54565b505050565b6000611e3182611812565b1515611e3c57600080fd5b50607a8054908160018101611e5183826151f4565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c1660208301526001604060020a03891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115611ece57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051611fbf929160200190615220565b5060e082015181600301908051611fda929160200190615220565b50505050806001604060020a03167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b8381101561204657808201518382015260200161202e565b50505050905090810190601f1680156120735780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b60008061209583611812565b15156120a057600080fd5b6001604060020a038516156122bd576120b88561359e565b905060146122aa826101006040519081016040528154909190829060ff1660028111156120e157fe5b60028111156120ec57fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a9093046001604060020a039081166040808701919091526001808801549283166060880152604060020a830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f8301819004810201905190810160405280929190818152602001828054600181600116156101000203166002900480156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561229c5780601f106122715761010080835404028352916020019161229c565b820191906000526020600020905b81548152906001019060200180831161227f57829003601f168201915b50505050508152505061420e565b6001604060020a0316106122bd57600080fd5b607a8054925082600181016122d283826151f4565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a03168152602001886001604060020a03168152602001896001604060020a0316815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff191660018360028111156123c257fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a0319909116178155604082015181546001604060020a039190911660a860020a02600080516020615568833981519152909116178155606082015160018201805467ffffffffffffffff19166001604060020a03929092169190911790556080820151600182018054911515604060020a0268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c0820151816002019080516124b3929160200190615220565b5060e0820151816003019080516124ce929160200190615220565b50505050816001604060020a03167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b60006125418261359e565b905061254c826139f7565b60018101805468ff00000000000000001916604060020a1790556001604060020a0382167f74acb192d39829b88a66ad5363afa9120c5a306a458287a870351ae34a04d34660405160405180910390a25050565b604051600080516020615548833981519152815260130160405180910390206125e83382600060405180591061121e5750599080825280602002602001820160405250612a84565b15156125f357600080fd5b50600160a060020a03166000908152607e60205260409020805460ff19166001179055565b60006126893388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686611e26565b979650505050505050565b60015481565b60006126a4615196565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106126e85780518252601f1990920191602091820191016126c9565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b600160a060020a031660009081526065602052604090205460ff161590565b60035490565b600080805b83518310156110b5576001604060020a0384848151811061276357fe5b90602001906020020151169150604060020a84848151811061278157fe5b9060200190602002015181151561279457fe5b0490506127a18282610f87565b600190920191612746565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60b25481565b6000806040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902061286b846141ee565b612876338383612a84565b151561288157600080fd5b600160a060020a03851660009081526065602052604090205460ff16156128a757600080fd5b600160a060020a038516151561293957606454600160a060020a033081163195501684156108fc0285604051600060405180830381858888f1935050505015156128f057600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a1610ea8565b84925082600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561299357600080fd5b6102c65a03f115156129a457600080fd5b5050506040518051606454909550600160a060020a03808616925063a9059cbb91168660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a1357600080fd5b6102c65a03f11515612a2457600080fd5b505050604051805190501515612a3957600080fd5b7fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f28585604051600160a060020a03909216825260208201526040908101905180910390a15050505050565b6000612a8e615196565b60008084511115612aa757835160200290508391508082525b600054600160a060020a03161580612bb8575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015612b4e578082015183820152602001612b36565b50505050905090810190601f168015612b7b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515612b9c57600080fd5b6102c65a03f11515612bad57600080fd5b505050604051805190505b9695505050505050565b60b255565b600080612bd384611889565b9350612bde846135e4565b600281015490925060c060020a90046001604060020a03161515612c0157600080fd5b6000600383015460a060020a900460ff166002811115612c1d57fe5b14612c2757600080fd5b6002820154612c3e906001604060020a03166139f7565b60028201546110a89060c060020a90046001604060020a0316614126565b6040517f4553434150455f48415443485f43414c4c45525f524f4c4500000000000000008152601801604051809103902081565b60405160008051602061554883398151915281526013016040518091039020612cb882614282565b612cc3338383612a84565b1515612cce57600080fd5b50506000908152607d60205260409020805460ff19169055565b6003541561026d57600080fd5b50565b60405160008051602061554883398151915281526013016040518091039020612d403382600060405180591061121e5750599080825280602002602001820160405250612a84565b1515612d4b57600080fd5b506000908152607d60205260409020805460ff19166001179055565b6000612d728861359e565b805490915033600160a060020a039081166101009092041614612d9457600080fd5b6001815460ff166002811115612da657fe5b14612db057600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612ddc60028201878761529a565b50612deb60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60005b8151811015612ea357612e9a828281518110612e8b57fe5b90602001906020020151611889565b50600101612e73565b5050565b600054600160a060020a031681565b600080805b8451831015612f23576001604060020a03858481518110612ed857fe5b90602001906020020151169150604060020a858481518110612ef657fe5b90602001906020020151811515612f0957fe5b049050612f1886838387611647565b600190920191612ebb565b505050505050565b6000612f368861359e565b805490915033600160a060020a039081166101009092041614612f5857600080fd5b6000815460ff166002811115612f6a57fe5b14612f7457600080fd5b805461010060a860020a031916610100600160a060020a03891602178155612fa060028201878761529a565b50612faf60038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b607f54600090819033600160a060020a03908116610100909204161461305957600080fd5b613062846135e4565b91506001600383015460a060020a900460ff16600281111561308057fe5b1461308a57600080fd5b6002820154600183018054613151926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561311d57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a0316815260200190600801906020826007010492830192600103820291508084116130da5790505b505050506002860154600387015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b90506110a881611889565b600080613167615196565b61316f615196565b60008060008060006131808a61359e565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f820181900481020160405190810160405280929190818152602001828054600181600116156101000203166002900480156132355780601f1061320a57610100808354040283529160200191613235565b820191906000526020600020905b81548152906001019060200180831161321857829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d45780601f106132a9576101008083540402835291602001916132d4565b820191906000526020600020905b8154815290600101906020018083116132b757829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a9094046001604060020a039081169a50831698505050604060020a810460ff16955069010000000000000000009004600160a060020a03169350915050565b600080805b83518310156110b5576001604060020a0384848151811061334d57fe5b90602001906020020151169150604060020a84848151811061336b57fe5b9060200190602002015181151561337e57fe5b04905061338b8282613034565b600190920191613330565b606454600160a060020a031681565b60006133b08861359e565b805490915033600160a060020a0390811661010090920416146133d257600080fd5b6002815460ff1660028111156133e457fe5b146133ee57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561341a60028201878761529a565b5061342960038201858561529a565b5080546001604060020a0380841660a860020a0260008051602061556883398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b60006134b8614293565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561351f578082015183820152602001613507565b50505050905090810190601f16801561354c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561356a57600080fd5b6102c65a03f1151561357b57600080fd5b50505060405180519392505050565b607f546101009004600160a060020a031681565b607a546000906001604060020a038316106135b857600080fd5b607a80546001604060020a0384169081106135cf57fe5b90600052602060002090600402019050919050565b607b546000906001604060020a038316106135fe57600080fd5b607b80546001604060020a0384169081106135cf57fe5b6000806000888a898989898960405180888051906020019060200280838360005b8381101561364e578082015183820152602001613636565b50505060c060020a6001604060020a03808d168202959093019485528a83168102600886015289831681026010860152918816909102601884015250506c01000000000000000000000000600160a060020a0385160260208201526034018260028111156136b857fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001019750505050505050506040519081900390206000818152607c60205260408120549193506001604060020a0390911691508111156137225780925061392a565b50607b80546000838152607c60205260409020805467ffffffffffffffff19166001604060020a0383161790558154909190600181016137628382615308565b9160005260206000209060040201600061010060405190810160405280600081526020018d81526020018e6001604060020a031681526020018c6001604060020a031681526020018b6001604060020a031681526020018a6001604060020a0316815260200189600160a060020a031681526020018860028111156137e357fe5b905291905081518155602082015181600101908051613806929160200190615334565b50604082015160028201805467ffffffffffffffff19166001604060020a039290921691909117905560608201518160020160086101000a8154816001604060020a0302191690836001604060020a0316021790555060808201518160020160106101000a8154816001604060020a0302191690836001604060020a0316021790555060a08201518160020160186101000a8154816001604060020a0302191690836001604060020a0316021790555060c082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560e082015160038201805474ff0000000000000000000000000000000000000000191660a060020a83600281111561391e57fe5b02179055505050508092505b5050979650505050505050565b60008060006139496001878787614383565b9250846001604060020a0316866001604060020a0316141561396a57612f23565b82151561397657612f23565b61397f866135e4565b915061398a856135e4565b82549091508390101561399c57600080fd5b815483900382558054830181556001604060020a038086169087167faf6151f5085accf2d57e1e7bf7601d3b3982e0de7e9a90f032f8554de9c104f68560405190815260200160405180910390a36118096000878786614383565b6000613a028261359e565b600181015490915033600160a060020a039081166901000000000000000000909204161480613a435750805433600160a060020a0390811661010090920416145b1515612ea357600080fd5b600080808080806001604060020a038716819011613a6b57600080fd5b613a7489611889565b9850613a7f896135e4565b9550613a8a8761359e565b94506000600387015460a060020a900460ff166002811115613aa857fe5b14613ab257600080fd5b60028601546001604060020a038b811691161415613dad576000855460ff166002811115613adc57fe5b1415613af257613aed8989896143a9565b6140ae565b6002855460ff166002811115613b0457fe5b1415613b1557613aed898989614403565b6001855460ff166002811115613b2757fe5b1415613dab57613c538661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613b865790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6002811115613c4a57fe5b90525088614641565b60028701546001604060020a0391821695506000604060020a909104909116118015613c8657506001604060020a038414155b15613d8c57600186015460001901841415613d6f576002860154600187018054613d62926001604060020a03169190602080820201604051908101604052809291908181526020018280548015613d2e57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613ceb5790505b5050505060028a015460038b015460009250829160c060020a90046001604060020a031690600160a060020a031682613615565b9250613aed89848a613937565b613d8689896001848a6001018054905003036146a7565b506140ae565b613d9e898988600101805490506146a7565b9850613aed8989896147b1565bfe5b613ed38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613e4957602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411613e065790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613ebf57fe5b6002811115613eca57fe5b9052508b614641565b6001604060020a0390811692508214613dab576000855460ff166002811115613ef857fe5b1415613f295760028601546001604060020a03888116911614613f1757fe5b613d86898988600101805490506146a7565b6001855460ff166002811115613f3b57fe5b1415614072576140288661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015613bc957600091825260209182902080546001604060020a03168452908202830192909160089101808411613b86575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115613c3f57fe5b6001604060020a03908116915081141561405357613d9e89896001858a6001018054905003036146a7565b81811115613d6f57613d9e89896001858a6001018054905003036146a7565b6002855460ff16600281111561408457fe5b1415613dab576140a189896001858a6001018054905003036146a7565b9850613aed8989896148e1565b50505050505050505050565b600354156140c757600080fd5b6140d081614bf4565b600160a060020a03821615156140e557600080fd5b607f805461010060a860020a031916610100600160a060020a038516021790556001614112607a826151f4565b506001611e21607b82615308565b60b25490565b600080806001604060020a038416151561414357600092506141e7565b61414c846135e4565b6002810154909250614166906001604060020a031661359e565b90506000815460ff16600281111561417a57fe5b1415614188578392506141e7565b6002815460ff16600281111561419a57fe5b146141a157fe5b60028201546141b8906001604060020a0316610eb8565b15156141c6578392506141e7565b60028201546141e49060c060020a90046001604060020a0316614126565b92505b5050919050565b6141f6615196565b61420882600160a060020a0316614c0a565b92915050565b60008060028351600281111561422057fe5b1461422757fe5b82606001516001604060020a031615156142445760019150610f54565b614251836060015161359e565b9050614278816101006040519081016040528154909190829060ff1660028111156120e157fe5b6001019392505050565b61428a615196565b61420882614c0a565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561435f57600080fd5b6102c65a03f1151561437057600080fd5b50505060405180519250829150505b5090565b806143918585808685614c51565b90506143a08584868685614c51565b95945050505050565b6000806143b5856135e4565b91506143f68360006040518059106143ca5750595b9080825280602002602001820160405250600385015460009081908190600160a060020a031681613615565b9050610ea8858286613937565b6000806000614411866135e4565b9250601461453a84610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a03168152602001906008019060208260070104928301926001038202915080841161446e5790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b600281111561453257fe5b905250614db9565b1061454457600080fd5b61454d84610eb8565b1561455757600080fd5b60028301546001840180546145f4926001604060020a0316919060208082020160405190810160405280929190818152602001828054801561199a57600091825260209182902080546001604060020a031684529082028301929091600891018084116119575750505050600288015460038901546000935083925060c060020a9091046001604060020a031690600160a060020a031682613615565b91506146348460006040518059106119f95750599080825280602002602001820160405250600386015460009081908790600160a060020a031682613615565b9050612f23868287613937565b6000805b83602001515181101561469557826001604060020a03168460200151828151811061466c57fe5b906020019060200201516001604060020a0316141561468d578091506146a0565b600101614645565b6001604060020a0391505b5092915050565b6000806146b2615196565b60006146bd876135e4565b60018101549093508590036040518059106146d55750595b90808252806020026020018201604052509150600090505b6001830154859003811015614760576001830180548290811061470c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031682828151811061474157fe5b6001604060020a039092166020928302909101909101526001016146ed565b6002830154600384015461479a916001604060020a03808216928692600092839260c060020a9092041690600160a060020a031682613615565b93506147a7878588613937565b5050509392505050565b60006147bb615196565b6000806147c7876135e4565b6001810154909450600a90106147dc57600080fd5b600180850154016040518059106147f05750595b90808252806020026020018201604052509250600091505b600184015482101561487b576001840180548390811061482457fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031683838151811061485957fe5b6001604060020a03909216602092830290910190910152600190910190614808565b6001840154859084908151811061488e57fe5b6001604060020a0392831660209182029092010152600285015460038601546148d492828116928792600092839260c060020a90041690600160a060020a031682613615565b9050611809878288613937565b6000806148ed856135e4565b915060146149d883610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b106149e257600080fd5b6149eb83610eb8565b156149f557600080fd5b60028201546001830180546143f6926001604060020a03169190602080820201604051908101604052809291908181526020018280548015614a8857602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614a455790505b505050505085614bb38661010060405190810160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015614b2a57602002820191906000526020600020906000905b82829054906101000a90046001604060020a03166001604060020a031681526020019060080190602082600701049283019260010382029150808411614ae75790505b50505091835250506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff1690811115614ba057fe5b6002811115614bab57fe5b905250614ecf565b6001604060020a0316614bc4614120565b60028801546003890154919092019160c060020a90046001604060020a031690600160a060020a03166000613615565b60035415614c0157600080fd5b612cf581614f67565b614c12615196565b6001604051805910614c215750595b908082528060200260200182016040525090508181600081518110614c4257fe5b60209081029091010152919050565b600080600080866001604060020a0316886001604060020a031614614c7857610100614c7b565b60005b61ffff169250849350614c8d886135e4565b60028101546003820154919350614cbf918b916001604060020a0316908a908a908890600160a060020a03168a614fb3565b9350600090505b60018201546001604060020a0382161015614d5257614d488983600101836001604060020a0316815481101515614cf957fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031689898588016001018760030160009054906101000a9004600160a060020a03168a614fb3565b9350600101614cc6565b60028201546000604060020a9091046001604060020a03161115614dad5760028201546003830154614daa918b91604060020a9091046001604060020a0316908a908a9060ff890190600160a060020a03168a614fb3565b93505b50505095945050505050565b6000808260a001516001604060020a03161515614dd95760009150610f54565b614de68360a001516135e4565b905061427881610100604051908101604052908160008201548152602001600182018054806020026020016040519081016040528092919081815260200182805480156144b157600091825260209182902080546001604060020a0316845290820283019290916008910180841161446e575050509284525050506002828101546001604060020a038082166020850152604060020a820481166040850152608060020a82048116606085015260c060020a9091041660808301526003830154600160a060020a03811660a084015260c09092019160a060020a900460ff169081111561452757fe5b6000806000614ee1846040015161359e565b805460a860020a90046001604060020a031693509150600090505b8360200151518110156141e757614f2b84602001518281518110614f1c57fe5b9060200190602002015161359e565b80549092506001604060020a0380851660a860020a909204161115614f5f57815460a860020a90046001604060020a031692505b600101614efc565b614f6f615178565b600160a060020a0381161515614f8457600080fd5b6064805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b80600080614fc08961359e565b600181015490915069010000000000000000009004600160a060020a031615801590614fec5750600083115b1561392a5789156150c457600181015469010000000000000000009004600160a060020a03166331c51a008a8a8a8a8a8a60006040516020015260405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401602060405180830381600087803b151561509357600080fd5b6102c65a03f115156150a457600080fd5b5050506040518051925050828211156150bc57600080fd5b81925061392a565b600181015469010000000000000000009004600160a060020a0316630da5e18c8a8a8a8a8a8a60405160e060020a63ffffffff89160281526001604060020a0396871660048201529486166024860152928516604485015293166064830152600160a060020a03909216608482015260a481019190915260c401600060405180830381600087803b151561515757600080fd5b6102c65a03f1151561516857600080fd5b5050505050979650505050505050565b6003541561518557600080fd5b61518d615192565b600355565b4390565b60206040519081016040526000815290565b61010060405190810160405280600081526020016151c4615196565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b815481835581811511611e2157600402816004028360005260206000209182019101611e2191906153e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061526157805160ff191683800117855561528e565b8280016001018555821561528e579182015b8281111561528e578251825591602001919060010190615273565b5061437f92915061544f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152db5782800160ff1982351617855561528e565b8280016001018555821561528e579182015b8281111561528e5782358255916020019190600101906152ed565b815481835581811511611e2157600402816004028360005260206000209182019101611e219190615469565b828054828255906000526020600020906003016004900481019282156153dc5791602002820160005b838211156153a757835183826101000a8154816001604060020a0302191690836001604060020a03160217905550926020019260080160208160070104928301926001030261535d565b80156153da5782816101000a8154906001604060020a0302191690556008016020816007010492830192600103026153a7565b505b5061437f9291506154b9565b610f8491905b8082111561437f5780547fffffff000000000000000000000000000000000000000000000000000000000090811682556001820180549091169055600061543860028301826154de565b6154466003830160006154de565b506004016153ee565b610f8491905b8082111561437f5760008155600101615455565b610f8491905b8082111561437f5760008082556154896001830182615522565b506000600282015560038101805474ffffffffffffffffffffffffffffffffffffffffff1916905560040161546f565b610f8491905b8082111561437f57805467ffffffffffffffff191681556001016154bf565b50805460018160011615610100020316600290046000825580601f106155045750612cf5565b601f016020900490600052602060002090810190612cf5919061544f565b508054600082556003016004900490600052602060002090810190612cf5919061544f5600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820f63d06b1671c243823d84cda47aa3e184f111d67492a316a6538fd36bc5cc9530029", - "sourceMap": "1086:946:8:-;;;;;;;;;-1:-1:-1;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1453:359:5;;;;;;;;;;-1:-1:-1;;;;;1453:359:5;;;-1:-1:-1;;;;;1453:359:5;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11679:478:11;;;;;;;;;;-1:-1:-1;;;;;11679:478:11;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;5642:455:5;;;;;;;;;;-1:-1:-1;;;;;5642:455:5;;;;;;;2764:399:7;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;-1:-1:-1;;;;;2764:399:7;;;;-1:-1:-1;;;;;2764:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226:9;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;1905:613:12;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688:5;;;;;;;;;;-1:-1:-1;;;;;4708:688:5;;;;;;;4149:236;;;;;;;;;;-1:-1:-1;;;;;4149:236:5;;;;;;;;;;;;;;;;;;1427:176:8;;;;;;;;;;-1:-1:-1;;;;;1427:176:8;;;;;;;;;;2360:1132:5;;;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;;-1:-1:-1;;;;;2360:1132:5;;;;;;;2140:450:9;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4233:1304:7;;;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;-1:-1:-1;;;;;4233:1304:7;;;;;;;;;;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4987:589:11;;;-1:-1:-1;;;;;4987:589:11;;;;;10029:101;;;;;;;;;;;;9732:285:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9732:285:5;;-1:-1:-1;9732:285:5;;-1:-1:-1;;;;;;9732:285:5;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1281:166:5;;;;;;;;;;-1:-1:-1;;;;;1281:166:5;;;-1:-1:-1;;;;;1281:166:5;;;;;;;2537:611:11;;;;;;;;;;;;;-1:-1:-1;;;;;2537:611:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2537:611:11;;-1:-1:-1;;;2537:611:11;;-1:-1:-1;;;;;2537:611:11;;;;;-1:-1:-1;;;;;2537:611:11;;-1:-1:-1;2537:611:11;;-1:-1:-1;;2537:611:11;7643:901;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7643:901:11;;;;;-1:-1:-1;;;;;7643:901:11;;;;;;;;;;;;;;;;7093:221:5;;;;;;;;;;-1:-1:-1;;;;;7093:221:5;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2123:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2123:313:11;;;-1:-1:-1;;;;;2123:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;3324:119:0;;;;;;;;;;-1:-1:-1;;;;;3324:119:0;;;;;269:107:26;;;;;;;;;;;;10241:297:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:297:5;;-1:-1:-1;10241:297:5;;-1:-1:-1;;;;;;10241:297:5;158:103:30;;;;;;;;;;;;1139:21:8;;;;;;;;;;;;2440:626:0;;;;;;;;;;-1:-1:-1;;;;;2440:626:0;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1960:70:8;;;;;;;;;;;;;;7615:408:5;;;;;;;;;;-1:-1:-1;;;;;7615:408:5;;;;;;;1330:88:0;;;;;;;;;;;;1672:174:9;;;;;;;;;;;;;;1609:162:7;;;;;;;;;;-1:-1:-1;;;;;1609:162:7;;;;;1286:148:9;;;;;;;;;;;;;;6330:542:11;;;;;;;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;11208:162:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11208:162:5;;-1:-1:-1;11208:162:5;;-1:-1:-1;;;;;;11208:162:5;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;9031:378:5;;;;;;;;;;;;;-1:-1:-1;;;;;9031:378:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:378:5;;-1:-1:-1;;;9031:378:5;;-1:-1:-1;;;;;9031:378:5;;-1:-1:-1;9031:378:5;;-1:-1:-1;;9031:378:5;3788:522:11;;;;;;;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:581:5;;;;;;;;;;-1:-1:-1;;;;;6360:581:5;;;;;;;10898:574:11;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:295:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10760:295:5;;-1:-1:-1;10760:295:5;;-1:-1:-1;;;;;;10760:295:5;1536:37:0;;;;;;;;;;;;9248:531:11;;;;;;;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;1453:359:5;1672:14;-1:-1:-1;;;;;1586:17:5;;;;1578:26;;;;;;1689:64;1698:12;1689:64;;;;;;;;;;;;;;;;;;;;;;;;;1720:6;;1689:8;:64::i;:::-;1672:81;;1763:42;1770:7;1779:10;1791:5;1798:6;1763;:42::i;:::-;1453:359;;;;;:::o;2506:37:10:-;;;;;;:::o;11679:478:11:-;11753:4;11773:21;11797;11808:9;11797:10;:21::i;:::-;11773:45;-1:-1:-1;11848:21:11;11833:11;;;;:36;;;;;;;;;11829:79;;;11892:5;11885:12;;;;11829:79;11940:23;11925:11;;;;:38;;;;;;;;;11918:46;;;;11979:10;;;;-1:-1:-1;;;11979:10:11;;;;11975:52;;;12012:4;12005:11;;;;11975:52;12040:15;;;;-1:-1:-1;;;;;12040:15:11;:20;12036:63;;;12083:5;12076:12;;;;12036:63;12134:15;;;;12116:34;;-1:-1:-1;;;;;12134:15:11;12116:17;:34::i;:::-;12109:41;;11679:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;;:::o;5642:455:5:-;1530:5:7;;5723:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;5742:21:5;5754:8;5742:11;:21::i;:::-;5723:40;-1:-1:-1;5799:18:5;5782:13;;;;-1:-1:-1;;;5782:13:5;;;;:35;;;;;;;;;5774:44;;;;;;5883:7;;;;;5904:17;;5850:187;;;;-1:-1:-1;;;;;5883:7:5;;5904:17;5850:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5850:187:5;-1:-1:-1;;;;;5850:187:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5965:11:5;;;;;5990:7;;;;5935:1;;-1:-1:-1;5935:1:5;;-1:-1:-1;;;5965:11:5;;;-1:-1:-1;;;;;5965:11:5;;-1:-1:-1;;;;;5990:7:5;;;;5850:19;:187::i;:::-;5829:208;;6048:42;6060:8;6070:11;6083:6;6048:11;:42::i;:::-;5642:455;;;;:::o;2764:399:7:-;2859:17;2886:12;2908:11;;:::i;:::-;2936:16;3043:28;2955:21;2967:8;2955:11;:21::i;:::-;2936:40;;2999:1;:17;;3031:1;3017:11;:15;-1:-1:-1;;;;;2999:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:34:7;2986:47;;3074:22;3085:10;3074;:22::i;:::-;3043:53;;3113:8;:13;;;;;;;;;;-1:-1:-1;;;;;3113:13:7;3106:20;;3143:8;:13;;3136:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:399;;;;;;;:::o;1440:226:9:-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;2008:126;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;1905:613:12:-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;4708:688:5:-;4844:16;4985:18;5259:25;4784;4800:8;4784:15;:25::i;:::-;4773:36;;4863:21;4875:8;4863:11;:21::i;:::-;4844:40;-1:-1:-1;4919:19:5;4902:13;;;;-1:-1:-1;;;4902:13:5;;;;:36;;;;;;;;;4894:45;;;;;;4966:7;;;;4949:25;;-1:-1:-1;;;;;4966:7:5;4949:16;:25::i;:::-;5039:7;;;;;5060:17;;5006:189;;;;-1:-1:-1;;;;;5039:7:5;;5060:17;5006:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5006:189:5;-1:-1:-1;;;;;5006:189:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5121:11:5;;;;5146:7;;;;5091:1;;-1:-1:-1;5091:1:5;;-1:-1:-1;;;5121:11:5;;-1:-1:-1;;;;;5121:11:5;;-1:-1:-1;;;;;5146:7:5;;5006:19;:189::i;:::-;4985:210;;5206:42;5218:8;5228:11;5241:6;5206:11;:42::i;:::-;5298:7;;;;5287:19;;-1:-1:-1;;;;;5298:7:5;5287:10;:19::i;:::-;5316:5;;5361:10;;5373:7;;;;5259:47;;-1:-1:-1;;;;;;5316:5:5;;;;;;;;:22;;-1:-1:-1;;;;;5339:20:5;;;5361:10;;;;5373:7;5382:6;5316:73;;-1:-1:-1;;;5316:73:5;;;;;;;;;;;;;-1:-1:-1;;;;;5316:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4708:688;;;;;:::o;4149:236::-;4293:26;4310:8;4293:16;:26::i;:::-;4329:49;4339:8;4349;4359:6;4367:10;4329:9;:49::i;1427:176:8:-;140:19:26;;:24;132:33;;;;;;1522:49:8;1539:6;1547:23;1522:16;:49::i;:::-;-1:-1:-1;;1593:3:8;1581:9;:15;1427:176::o;2360:1132:5:-;2624:26;;;-1:-1:-1;;;;;2476:11:5;;;;;2468:20;;;;;;2580:1;2571:10;;2563:19;;;;;;-1:-1:-1;;;;;2600:12:5;;;;2592:21;;;;;;2653:19;2664:7;2653:10;:19::i;:::-;2624:48;-1:-1:-1;2710:21:5;2690:16;;;;:41;;;;;;;;;2682:50;;;;;;3002:5;;-1:-1:-1;;;;;2956:25:5;;;;;;2982:10;;3002:5;;;;3010:6;2956:61;;;;;;;;-1:-1:-1;;;2956:61:5;;;;;;-1:-1:-1;;;;;2956:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2948:70;;;;;;;;3084:219;3117:7;3151:1;3138:15;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3225;3240;3255:5;3274:19;3084;:219::i;:::-;3066:237;;3335:21;3347:8;3335:11;:21::i;:::-;3366:20;;;;;;3314:42;-1:-1:-1;;;;;;3397:29:5;;3366:10;3397:29;3380:6;3397:29;;;;;;;;;;;;;;3437:48;3447:7;3456:8;3466:6;3474:10;3437:9;:48::i;:::-;2360:1132;;;;;;;:::o;2140:450:9:-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4233:1304:7:-;4290:6;4308:16;4706;4961:15;4327:21;4339:8;4327:11;:21::i;:::-;4308:40;-1:-1:-1;4494:19:7;4477:13;;;;-1:-1:-1;;;4477:13:7;;;;:36;;;;;;;;;4473:82;;4536:8;4529:15;;;;4473:82;4636:17;;;;4656:1;-1:-1:-1;;;4636:17:7;;;-1:-1:-1;;;;;4636:17:7;:21;4635:55;;;;-1:-1:-1;4677:12:7;;;;-1:-1:-1;;;4677:12:7;;-1:-1:-1;;;;;4677:12:7;4664:10;:8;:10::i;:::-;:25;4635:55;4631:714;;;4762:7;;;;;4787:17;;4725:222;;;;-1:-1:-1;;;;;4762:7:7;;4787:17;4725:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4725:222:7;-1:-1:-1;;;;;4725:222:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4860:11:7;;;;4889:7;;;;4822:1;;-1:-1:-1;4822:1:7;;-1:-1:-1;;;4860:11:7;;-1:-1:-1;;;;;4860:11:7;;-1:-1:-1;;;;;4889:7:7;4822:1;4725:19;:222::i;:::-;5016:17;;;;4706:241;;-1:-1:-1;4979:228:7;;-1:-1:-1;;;5016:17:7;;-1:-1:-1;;;;;5016:17:7;5064:1;5051:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5149:7:7;;;;5084:1;;;;5122:9;;-1:-1:-1;;;;;5149:7:7;5084:1;4979:19;:228::i;:::-;4961:246;;5221:41;5233:8;5243;5253:1;:8;;;5221:11;:41::i;:::-;5287:8;5276:19;;5313:21;5325:8;5313:11;:21::i;:::-;5309:25;;4631:714;5366:37;5394:8;5366:27;:37::i;:::-;5355:48;-1:-1:-1;;;;;;5417:20:7;;;;;;;5413:92;;5453:41;5465:8;5475;5485:1;:8;;;5453:11;:41::i;:::-;5522:8;5515:15;;4233:1304;;;;;;;:::o;4987:589:11:-;5138:17;5180:21;5194:6;5180:13;:21::i;:::-;5172:30;;;;;;;;-1:-1:-1;5249:6:11;:13;;;;5274:254;;;;5249:6;5274:254;;:::i;:::-;;;;;;;;;;;;5299:219;;;;;;;;;5328:24;5299:219;;;;5370:10;-1:-1:-1;;;;;5299:219:11;;;;;5398:10;-1:-1:-1;;;;;5299:219:11;;;;;5426:1;-1:-1:-1;;;;;5299:219:11;;;;;5445:5;5299:219;;;;;;5468:6;-1:-1:-1;;;;;5299:219:11;;;;;5492:4;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:3;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5299:219:11;;;;-1:-1:-1;5274:254:11;;;-1:-1:-1;5274:254:11;;-1:-1:-1;;5274:254:11;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;-1:-1:-1;;;;;;5274:254:11;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;;;;;;;;;;5274:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5553:10;-1:-1:-1;;;;;5539:30:11;;5565:3;;5539:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:589;;;;;;;;:::o;10029:101::-;10106:6;:13;-1:-1:-1;;10106:17:11;10029:101;:::o;9732:285:5:-;9796:6;;;9791:220;9812:14;:21;9808:1;:25;9791:220;;;-1:-1:-1;;;;;9880:14:5;9895:1;9880:14;:17;;;;;;;;;;;;;;;:27;9855:53;;-1:-1:-1;;;9936:14:5;9951:1;9936:17;;;;;;;;;;;;;;;;:23;;;;;;;;9922:37;;9974:26;9983:8;9993:6;9974:8;:26::i;:::-;9835:3;;;;;9791:220;;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1281:166:5:-;1384:56;1402:10;1414;1426:5;1433:6;1384:17;:56::i;:::-;1281:166;;;:::o;2537:611:11:-;2705:14;2743:21;2757:6;2743:13;:21::i;:::-;2735:30;;;;;;;;-1:-1:-1;2809:6:11;:13;;;;2861:245;;;;2809:6;2861:245;;:::i;:::-;;;;;;;;;;;;2886:210;;;;;;;;;2915:21;2886:210;;-1:-1:-1;;;;;2886:210:11;;;;;;;-1:-1:-1;;;;;2886:210:11;;;;;;-1:-1:-1;2886:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:245;;-1:-1:-1;2861:245:11;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;-1:-1:-1;;;;;;2861:245:11;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;;;;;;;;;;2861:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3128:7;-1:-1:-1;;;;;3117:24:11;;3137:3;3117:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2537:611:11;;;;;;;:::o;7643:901::-;7853:16;7965:21;7894;7908:6;7894:13;:21::i;:::-;7886:30;;;;;;;;-1:-1:-1;;;;;7931:18:11;;;7927:250;;7989:25;8000:13;7989:10;:25::i;:::-;7965:49;;1096:2;8123:19;8140:1;8123:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;-1:-1:-1;;;;;8123:42:11;;8115:51;;;;;;8206:6;:13;;;-1:-1:-1;8206:13:11;8231:267;;;;8206:6;8231:267;;:::i;:::-;;;;;;;;;;;;8256:232;;;;;;;;;8285:23;8256:232;;;;8326:12;-1:-1:-1;;;;;8256:232:11;;;;;8356:10;-1:-1:-1;;;;;8256:232:11;;;;;8384:13;-1:-1:-1;;;;;8256:232:11;;;;;8415:5;8256:232;;;;;;8438:6;-1:-1:-1;;;;;8256:232:11;;;;;8462:4;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8484:3;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8256:232:11;;;;-1:-1:-1;8231:267:11;;;-1:-1:-1;8231:267:11;;-1:-1:-1;;8231:267:11;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;-1:-1:-1;;;;;;8231:267:11;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;;;;;;;;;;8231:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8522:9;-1:-1:-1;;;;;8509:28:11;;8533:3;;8509:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:901;;;;;;;;;;;:::o;7093:221:5:-;7151:27;7181:21;7192:9;7181:10;:21::i;:::-;7151:51;;7212:27;7229:9;7212:16;:27::i;:::-;7268:4;7249:16;;:23;;-1:-1:-1;;7249:23:5;-1:-1:-1;;;7249:23:5;;;-1:-1:-1;;;;;7283:24:5;;;;;;;;;;;;7093:221;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2123:313:11:-;2271:14;2308:121;2330:10;2354:4;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:3;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:10;2413:6;2308:8;:121::i;:::-;2301:128;2123:313;-1:-1:-1;;;;;;;2123:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;3324:119:0:-;-1:-1:-1;;;;;3413:23:0;3389:4;3413:23;;;:15;:23;;;;;;;;3412:24;;3324:119::o;269:107:26:-;350:19;;269:107;:::o;10241:297:5:-;10311:6;;;10306:226;10327:14;:21;10323:1;:25;10306:226;;;-1:-1:-1;;;;;10395:14:5;10410:1;10395:14;:17;;;;;;;;;;;;;;;:27;10370:53;;-1:-1:-1;;;10451:14:5;10466:1;10451:17;;;;;;;;;;;;;;;;:23;;;;;;;;10437:37;;10489:32;10504:8;10514:6;10489:14;:32::i;:::-;10350:3;;;;;10306:226;;158:103:30;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;1139:21:8:-;;;;:::o;2440:626:0:-;2591:15;2881:11;1381:37;;;;;;;;;;;;;;2518:11;2522:6;2518:3;:11::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;2549:23:0;;;;;;:15;:23;;;;;;;;:30;2541:39;;;;;;-1:-1:-1;;;;;2654:13:0;;;2650:188;;;2719:22;;-1:-1:-1;;;;;2693:4:0;:12;;;;-1:-1:-1;2719:22:0;:40;;;;2693:12;2719:40;;;;;;;;;;;;;;;;;;;;;;;;;;2773:34;2791:6;2799:7;2773:34;;-1:-1:-1;;;;;2773:34:0;;;;;;;;;;;;;;;;;;;;2821:7;;2650:188;2901:6;2881:27;;2928:5;-1:-1:-1;;;;;2928:15:0;;2944:4;2928:21;;;;;;;;-1:-1:-1;;;2928:21:0;;;;;;-1:-1:-1;;;;;2928:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2982:22;;2928:21;;-1:-1:-1;;;;;;2967:14:0;;;;-1:-1:-1;2967:14:0;;2982:22;2928:21;2982:22;2967:47;;;;;;;-1:-1:-1;;;2967:47:0;;;;;;-1:-1:-1;;;;;2967:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:56;;;;;;;;3025:34;3043:6;3051:7;3025:34;;-1:-1:-1;;;;;3025:34:0;;;;;;;;;;;;;;;;;;;;2440:626;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1960:70:8:-;2009:9;:14;1960:70::o;7615:408:5:-;7731:16;7907;7695:25;7711:8;7695:15;:25::i;:::-;7684:36;;7750:21;7762:8;7750:11;:21::i;:::-;7789:11;;;;;;-1:-1:-1;;;;7789:11:5;;-1:-1:-1;;;;;7789:11:5;:16;;7781:25;;;;;;7841:19;7824:13;;;;-1:-1:-1;;;7824:13:5;;;;:36;;;;;;;;;7816:45;;;;;;7888:7;;;;7871:25;;-1:-1:-1;;;;;7888:7:5;7871:16;:25::i;:::-;7954:11;;;;7926:40;;-1:-1:-1;;;7954:11:5;;-1:-1:-1;;;;;7954:11:5;7926:27;:40::i;1330:88:0:-;1381:37;;;;;;;;;;;;;;1330:88;:::o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1609:162:7:-;140:19:26;;:24;132:33;;;;;1688:14:7;1609:162;:::o;1286:148:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6330:542:11:-;6513:28;6544:22;6555:10;6544;:22::i;:::-;6598:13;;6513:53;;-1:-1:-1;6584:10:11;-1:-1:-1;;;;;6584:27:11;;;6598:13;;;;;6584:27;6576:36;;;;;;6652:24;6630:18;;;;:46;;;;;;;;;6622:55;;;;;;6687:23;;-1:-1:-1;;;;;;6687:23:11;;-1:-1:-1;;;;;6687:23:11;;;;;;6720;:13;;;6736:7;;6720:23;:::i;:::-;-1:-1:-1;6753:21:11;:12;;;6768:6;;6753:21;:::i;:::-;-1:-1:-1;6784:35:11;;-1:-1:-1;;;;;6784:35:11;;;-1:-1:-1;;;6784:35:11;-1:-1:-1;;;;;;;;;;;6784:35:11;;;;;;;;;6830;;;6858:6;;6830:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:542;;;;;;;;:::o;11208:162:5:-;11274:6;11269:95;11290:7;:14;11286:1;:18;11269:95;;;11326:27;11342:7;11350:1;11342:10;;;;;;;;;;;;;;;;11326:15;:27::i;:::-;-1:-1:-1;11306:3:5;;11269:95;;;11208:162;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;9031:378:5:-;9166:6;;;9161:242;9182:14;:21;9178:1;:25;9161:242;;;-1:-1:-1;;;;;9250:14:5;9265:1;9250:14;:17;;;;;;;;;;;;;;;:27;9225:53;;-1:-1:-1;;;9306:14:5;9321:1;9306:17;;;;;;;;;;;;;;;;:23;;;;;;;;9292:37;;9344:48;9353:8;9363;9373:6;9381:10;9344:8;:48::i;:::-;9205:3;;;;;9161:242;;;9031:378;;;;;;:::o;3788:522:11:-;3965:25;3993:19;4004:7;3993:10;:19::i;:::-;4044:10;;3965:47;;-1:-1:-1;4030:10:11;-1:-1:-1;;;;;4030:24:11;;;4044:10;;;;;4030:24;4022:33;;;;;;4092:21;4073:15;;;;:40;;;;;;;;;4065:49;;;;;;4143:20;;-1:-1:-1;;;;;;4143:20:11;;-1:-1:-1;;;;;4143:20:11;;;;;;4173;:10;;;4186:7;;4173:20;:::i;:::-;-1:-1:-1;4203:18:11;:9;;;4215:6;;4203:18;:::i;:::-;-1:-1:-1;4231:32:11;;-1:-1:-1;;;;;4231:32:11;;;-1:-1:-1;;;4231:32:11;-1:-1:-1;;;;;;;;;;;4231:32:11;;;;;;;;;4274:29;;;4296:6;;4274:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3788:522;;;;;;;;:::o;6360:581:5:-;1530:5:7;;6440:16:5;;;;1508:10:7;-1:-1:-1;;;;;1508:28:7;;;1530:5;;;;;1508:28;1500:37;;;;;;6459:21:5;6471:8;6459:11;:21::i;:::-;6440:40;-1:-1:-1;6516:18:5;6499:13;;;;-1:-1:-1;;;6499:13:5;;;;:35;;;;;;;;;6491:44;;;;;;6671:7;;;;;6692:17;;6638:190;;;;-1:-1:-1;;;;;6671:7:5;;6692:17;6638:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6638:190:5;-1:-1:-1;;;;;6638:190:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6753:11:5;;;;6778:7;;;;6723:1;;-1:-1:-1;6723:1:5;;-1:-1:-1;;;6753:11:5;;-1:-1:-1;;;;;6753:11:5;;-1:-1:-1;;;;;6778:7:5;6723:1;6638:19;:190::i;:::-;6617:211;;6853:28;6869:11;6853:15;:28::i;10898:574:11:-;10970:25;11005:12;11027:11;;:::i;:::-;11048:10;;:::i;:::-;11068:17;11095:20;11125:13;11148:14;11179:21;11203:19;11214:7;11203:10;:19::i;:::-;11244:11;;11295:6;;;;11288:13;;11244:11;;;;-1:-1:-1;11244:11:11;11272:6;;;;-1:-1:-1;;;;;11272:6:11;;-1:-1:-1;11244:11:11;;-1:-1:-1;11295:6:11;11244:11;11288:13;;;;;;-1:-1:-1;;11288:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:1;:5;;11311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11345:12:11;;11383:15;;;;;10898:574;;;;-1:-1:-1;10898:574:11;;11311:11;;-1:-1:-1;;;11345:12:11;;;-1:-1:-1;;;;;11345:12:11;;;;-1:-1:-1;11383:15:11;;;-1:-1:-1;;;;;;11419:10:11;;;;;-1:-1:-1;11456:8:11;;;-1:-1:-1;;;;;11456:8:11;;-1:-1:-1;10898:574:11;-1:-1:-1;;10898:574:11:o;10760:295:5:-;10829:6;;;10824:225;10845:14;:21;10841:1;:25;10824:225;;;-1:-1:-1;;;;;10913:14:5;10928:1;10913:14;:17;;;;;;;;;;;;;;;:27;10888:53;;-1:-1:-1;;;10969:14:5;10984:1;10969:17;;;;;;;;;;;;;;;;:23;;;;;;;;10955:37;;11007:31;11021:8;11031:6;11007:13;:31::i;:::-;10868:3;;;;;10824:225;;1536:37:0;;;-1:-1:-1;;;;;1536:37:0;;:::o;9248:531:11:-;9429:27;9459:21;9470:9;9459:10;:21::i;:::-;9513:12;;9429:51;;-1:-1:-1;9499:10:11;-1:-1:-1;;;;;9499:26:11;;;9513:12;;;;;9499:26;9491:35;;;;;;9565:23;9544:17;;;;:44;;;;;;;;;9536:53;;;;;;9600:22;;-1:-1:-1;;;;;;9600:22:11;;-1:-1:-1;;;;;9600:22:11;;;;;;9632;:12;;;9647:7;;9632:22;:::i;:::-;-1:-1:-1;9664:20:11;:11;;;9678:6;;9664:20;:::i;:::-;-1:-1:-1;9694:34:11;;-1:-1:-1;;;;;9694:34:11;;;-1:-1:-1;;;9694:34:11;-1:-1:-1;;;;;;;;;;;9694:34:11;;;;;;;;;9739:33;;;9765:6;;9739:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12395:161:11:-;12503:6;:13;12454:11;;-1:-1:-1;;;;;12493:23:11;;;12485:32;;;;;;12534:6;:15;;-1:-1:-1;;;;;12534:15:11;;;;;;;;;;;;;;;;;;;12527:22;;12395:161;;;:::o;4558::12:-;4663:7;:14;4618:6;;-1:-1:-1;;;;;4652:25:12;;;4644:34;;;;;;4695:7;:17;;-1:-1:-1;;;;;4695:17:12;;;;;;;;3617:842;3861:6;3883:15;3998:9;3911:15;3928:5;3935:15;3952:10;3964:9;3975:5;3982;3901:87;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;-1:-1;;;;;;;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4010:20:12;;;;:11;:20;;;;;;3:109:-1;;-1:-1;;;;;;4010:20:12;;;;-1:-1:-1;4044:6:12;;4040:46;;;4073:2;4066:9;;;;4040:46;-1:-1:-1;4108:7:12;:14;;4133:20;;;;:11;:20;;;;;:25;;-1:-1:-1;;4133:25:12;-1:-1:-1;;;;;4133:25:12;;;;;4168:265;;4108:14;;:7;-1:-1:-1;4168:265:12;;;4108:7;4168:265;;:::i;:::-;;;;;;;;;;;;4194:229;;;;;;;;;4218:1;4194:229;;;;4237:15;4194:229;;;;4270:5;-1:-1:-1;;;;;4194:229:12;;;;;4293:15;-1:-1:-1;;;;;4194:229:12;;;;;4326:10;-1:-1:-1;;;;;4194:229:12;;;;;4354:9;-1:-1:-1;;;;;4194:229:12;;;;;4381:5;-1:-1:-1;;;;;4194:229:12;;;;;4404:5;4194:229;;;;;;;;;;4168:265;;-1:-1:-1;4168:265:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4168:265:12;;;;;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;;;4168:265:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4168:265:12;-1:-1:-1;;;4168:265:12;;;;;;;;;;;;;;;;;4450:2;4443:9;;3617:842;;;;;;;;;;;;:::o;17466:534:7:-;17544:11;17719:20;17769:18;17558:37;17571:4;17577;17583:2;17587:7;17558:12;:37::i;:::-;17544:51;;17617:2;-1:-1:-1;;;;;17609:10:7;:4;-1:-1:-1;;;;;17609:10:7;;17605:47;;;17635:7;;17605:47;17665:11;;17661:48;;;17692:7;;17661:48;17742:17;17754:4;17742:11;:17::i;:::-;17719:40;;17790:15;17802:2;17790:11;:15::i;:::-;17824:12;;17769:36;;-1:-1:-1;17824:22:7;;;;17816:31;;;;;;17857:22;;;;;;;17889:20;;;;;;-1:-1:-1;;;;;17920:26:7;;;;;;;17873:6;17920:26;;;;;;;;;;;;;;17956:37;17969:5;17976:4;17982:2;17986:6;17956:12;:37::i;5778:190::-;5844:21;5868:19;5879:7;5868:10;:19::i;:::-;5927:8;;;;5844:43;;-1:-1:-1;5905:10:7;-1:-1:-1;;;;;5905:31:7;;;5927:8;;;;;5905:31;;:55;;-1:-1:-1;5954:6:7;;5940:10;-1:-1:-1;;;;;5940:20:7;;;5954:6;;;;;5940:20;5905:55;5897:64;;;;;;;5974:5481;6226:16;;;;;;-1:-1:-1;;;;;6129:14:7;;;;;6121:23;;;;;;6190:25;6206:8;6190:15;:25::i;:::-;6179:36;;6245:21;6257:8;6245:11;:21::i;:::-;6226:40;;6307:22;6318:10;6307;:22::i;:::-;6276:53;-1:-1:-1;6365:19:7;6348:13;;;;-1:-1:-1;;;6348:13:7;;;;:36;;;;;;;;;6340:45;;;;;;6452:7;;;;-1:-1:-1;;;;;6452:19:7;;;:7;;:19;6448:2092;;;6514:21;6492:18;;;;:43;;;;;;;;;6488:1875;;;6555:55;6581:8;6591:6;6599:10;6555:25;:55::i;:::-;6628:7;;6488:1875;6681:23;6659:18;;;;:45;;;;;;;;;6655:1708;;;6724:57;6752:8;6762:6;6770:10;6724:27;:57::i;6655:1708::-;6852:24;6830:18;;;;:46;;;;;;;;;6826:1537;;;6917:30;6933:1;6917:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;-1:-1:-1;;6917:30:7;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;-1:-1:-1;;;;;6917:30:7;;;;;;;;;;;-1:-1:-1;;;6917:30:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6936:10:7;6917:15;:30::i;:::-;6969:17;;;;-1:-1:-1;;;;;6897:50:7;;;;-1:-1:-1;6989:1:7;-1:-1:-1;;;6969:17:7;;;;;;:21;:49;;;;-1:-1:-1;;;;;;6994:24:7;;;6969:49;6965:971;;;7333:1;7306:17;;:24;-1:-1:-1;;7306:28:7;7290:44;;7286:507;;;7429:7;;;;;7466:17;;7380:293;;;;-1:-1:-1;;;;;7429:7:7;;7466:17;7380:293;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7380:293:7;-1:-1:-1;;;;;7380:293:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;7575:11:7;;;;7616:7;;;;7513:1;;-1:-1:-1;7513:1:7;;-1:-1:-1;;;7575:11:7;;-1:-1:-1;;;;;7575:11:7;;-1:-1:-1;;;;;7616:7:7;7513:1;7380:19;:293::i;:::-;7362:311;;7699:39;7711:8;7721;7731:6;7699:11;:39::i;7286:507::-;7815:74;7827:8;7837:6;7887:1;7872:12;7845:1;:17;;:24;;;;:39;:43;7815:11;:74::i;:::-;;7911:7;;6965:971;8128:133;8161:8;8191:6;8219:1;:17;;:24;;;;8128:11;:133::i;:::-;8117:144;;8279:45;8295:8;8305:6;8313:10;8279:15;:45::i;6826:1537::-;8516:13;;8607:28;8623:1;8607:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;-1:-1:-1;;8607:28:7;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;-1:-1:-1;;;;;8607:28:7;;;;;;;;;;;-1:-1:-1;;;8607:28:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8626:8:7;8607:15;:28::i;:::-;-1:-1:-1;;;;;8589:46:7;;;;-1:-1:-1;8649:22:7;;8645:2731;;8763:21;8741:18;;;;:43;;;;;;;;;8737:274;;;8877:7;;;;-1:-1:-1;;;;;8877:21:7;;;:7;;:21;8870:29;;;;8917:55;8929:8;8939:6;8947:1;:17;;:24;;;;8917:11;:55::i;8737:274::-;9103:24;9081:18;;;;:46;;;;;;;;;9077:1781;;;9167:30;9183:1;9167:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;-1:-1:-1;;;9167:30:7;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9167:30:7;;;;;;;;;;;-1:-1:-1;;;9167:30:7;;;;;;;;;;;;-1:-1:-1;;;;;9147:50:7;;;;-1:-1:-1;9270:24:7;;9266:934;;;9329:166;9366:8;9400:6;9472:1;9459:10;9432:1;:17;;:24;;;;:37;:41;9329:11;:166::i;9266:934::-;9875:10;9860:12;:25;9856:344;;;9920:166;9957:8;9991:6;10063:1;10050:10;10023:1;:17;;:24;;;;:37;:41;9920:11;:166::i;9077:1781::-;11054:23;11032:18;;;;:45;;;;;;;;;11028:338;;;11108:150;11141:8;11171:6;11239:1;11226:10;11199:1;:17;;:24;;;;:37;:41;11108:11;:150::i;:::-;11097:161;;11276:51;11298:8;11308:6;11316:10;11276:21;:51::i;11385:13::-;5974:5481;;;;;;;;;;:::o;2117:319::-;140:19:26;;:24;132:33;;;;;;2212:41:7;2229:23;2212:16;:41::i;:::-;-1:-1:-1;;;;;2271:13:7;;;;2263:22;;;;;;2296:5;:24;;-1:-1:-1;;;;;;2296:24:7;;-1:-1:-1;;;;;2296:24:7;;;;;;-1:-1:-1;2331:17:7;:6;-1:-1:-1;2331:17:7;:::i;:::-;-1:-1:-1;2401:1:7;2384:18;:7;2401:1;2384:18;:::i;1696:82:8:-;1762:9;;1696:82;:::o;18983:583:7:-;19073:6;;;-1:-1:-1;;;;;19099:13:7;;;19095:52;;;19135:1;19128:8;;;;19095:52;19176:21;19188:8;19176:11;:21::i;:::-;19246:7;;;;19157:40;;-1:-1:-1;19235:19:7;;-1:-1:-1;;;;;19246:7:7;19235:10;:19::i;:::-;19207:47;-1:-1:-1;19296:21:7;19277:15;;;;:40;;;;;;;;;19273:86;;;19340:8;19333:15;;;;19273:86;19395:23;19376:15;;;;:42;;;;;;;;;19369:50;;;;19452:7;;;;19434:26;;-1:-1:-1;;;;;19452:7:7;19434:17;:26::i;:::-;19433:27;19429:73;;;19483:8;19476:15;;;;19429:73;19547:11;;;;19519:40;;-1:-1:-1;;;19547:11:7;;-1:-1:-1;;;;;19547:11:7;19519:27;:40::i;:::-;19512:47;;18983:583;;;;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12772:316:11:-;12835:6;;12875:23;12860:1;:11;:38;;;;;;;;;12853:46;;;;12914:1;:15;;;-1:-1:-1;;;;;12914:20:11;;12910:60;;;12957:1;12950:9;;;;12910:60;13009:27;13020:1;:15;;;13009:10;:27::i;:::-;12980:56;;13053:24;13070:6;13053:24;;;;;;;;;;;;;;;;;;;;;;;;;13080:1;13053:28;;12772:316;-1:-1:-1;;;12772:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;24617:649:7:-;24808:6;24893:145;24925:6;24945:10;;24993:8;24808:6;24893:18;:145::i;:::-;24877:161;;25116:143;25148:6;25168:8;25190:10;25214:8;25236:13;25116:18;:143::i;:::-;25100:159;24617:649;-1:-1:-1;;;;;24617:649:7:o;13289:444::-;13427:16;13478:15;13446:21;13458:8;13446:11;:21::i;:::-;13427:40;;13496:181;13529:10;13566:1;13553:15;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13627:7:7;;;;13582:1;;;;;;-1:-1:-1;;;;;13627:7:7;13582:1;13496:19;:181::i;:::-;13478:199;;13687:39;13699:8;13709;13719:6;13687:11;:39::i;11890:989::-;12030:16;12311;12530:15;12049:21;12061:8;12049:11;:21::i;:::-;12030:40;;1143:2:11;12207:18:7;12223:1;12207:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;-1:-1:-1;;12207:18:7;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;-1:-1:-1;;;;;12207:18:7;;;;;;;;;;;-1:-1:-1;;;12207:18:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12207:15:7;:18::i;:::-;:43;12199:52;;;;;;12270:29;12288:10;12270:17;:29::i;:::-;12269:30;12261:39;;;;;;12363:7;;;;;12384:17;;12330:190;;;;-1:-1:-1;;;;;12363:7:7;;12384:17;12330:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12330:190:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;12445:11:7;;;;12470:7;;;;12415:1;;-1:-1:-1;12415:1:7;;-1:-1:-1;;;;12445:11:7;;;-1:-1:-1;;;;;12445:11:7;;-1:-1:-1;;;;;12470:7:7;12415:1;12330:19;:190::i;:::-;12311:209;;12548:275;12581:10;12659:1;12646:15;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12773:7:7;;;;12720:1;;;;12750:9;;-1:-1:-1;;;;;12773:7:7;12720:1;12548:19;:275::i;:::-;12530:293;;12833:39;12845:8;12855;12865:6;12833:11;:39::i;5224:290:12:-;5300:6;;5318:165;5339:1;:17;;;:24;5335:1;:28;5318:165;;;5412:10;-1:-1:-1;;;;;5388:34:12;:1;:17;;;5406:1;5388:20;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5388:34:12;;5384:89;;;5456:1;5442:16;;;;5384:89;5365:3;;5318:165;;;-1:-1:-1;;;;;5492:15:12;;5224:290;;;;;;:::o;15385:692:7:-;15492:15;15523:16;15573:34;;:::i;:::-;15690:6;15542:21;15554:8;15542:11;:21::i;:::-;15636:17;;;:24;15523:40;;-1:-1:-1;15636:28:7;;;15610:64;;;;;;;;;;;;;;;;;;;;;;;;15573:101;;15699:1;15690:10;;15685:125;15706:17;;;:24;:28;;;15702:32;;15685:125;;;15779:17;;;:20;;15797:1;;15779:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15779:20:7;15755:18;15774:1;15755:21;;;;;;;;-1:-1:-1;;;;;15755:44:7;;;:21;;;;;;;;;;:44;15736:3;;15685:125;;;15863:7;;;;15971;;;;15830:191;;-1:-1:-1;;;;;15863:7:7;;;;15884:18;;15863:7;;;;-1:-1:-1;;;15946:11:7;;;;;-1:-1:-1;;;;;15971:7:7;15863;15830:19;:191::i;:::-;15819:202;;16031:39;16043:8;16053;16063:6;16031:11;:39::i;:::-;15385:692;;;;;;;;:::o;14091:871::-;14219:16;14329:34;;:::i;:::-;14445:6;14697:15;14238:21;14250:8;14238:11;:21::i;:::-;14278:17;;;:24;14219:40;;-1:-1:-1;1085:2:12;14278:40:7;;14270:49;;;;;;14392:17;;;;:24;:28;14366:64;;;;;;;;;;;;;;;;;;;;;;;;14329:101;;14454:1;14445:10;;14440:121;14461:17;;;:24;14457:28;;14440:121;;;14530:17;;;:20;;14548:1;;14530:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14530:20:7;14506:18;14525:1;14506:21;;;;;;;;-1:-1:-1;;;;;14506:44:7;;;:21;;;;;;;;;;:44;14487:3;;;;;14440:121;;;14648:17;;;:24;14676:10;;14629:18;;;:44;;;;;;;-1:-1:-1;;;;;14629:57:7;;;:44;;;;;;;;:57;14748:7;;;;14856;;;;14715:191;;14748:7;;;;14769:18;;14748:7;;;;-1:-1:-1;;;14831:11:7;;;;-1:-1:-1;;;;;14856:7:7;14748;14715:19;:191::i;:::-;14697:209;;14916:39;14928:8;14938;14948:6;14916:11;:39::i;16503:607::-;16637:16;16800:15;16656:21;16668:8;16656:11;:21::i;:::-;16637:40;;1143:2:11;16696:18:7;16712:1;16696:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;-1:-1:-1;;;16696:18:7;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;-1:-1:-1;;;;;16696:18:7;;;;;;;;;;;-1:-1:-1;;;16696:18:7;;;;;;;;;;;;:43;16688:52;;;;;;16759:29;16777:10;16759:17;:29::i;:::-;16758:30;16750:39;;;;;;16851:7;;;;;16872:17;;16818:236;;;;-1:-1:-1;;;;;16851:7:7;;16872:17;16818:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16818:236:7;-1:-1:-1;;;;;16818:236:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:10;16947:17;16962:1;16947:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;-1:-1:-1;;16947:17:7;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;-1:-1:-1;;;;;16947:17:7;;;;;;;;;;;-1:-1:-1;;;16947:17:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16947:14:7;:17::i;:::-;-1:-1:-1;;;;;16934:30:7;:10;:8;:10::i;:::-;16979:11;;;;17004:7;;;;16934:30;;;;;-1:-1:-1;;;16979:11:7;;-1:-1:-1;;;;;16979:11:7;;-1:-1:-1;;;;;17004:7:7;;16818:19;:236::i;2116:116:0:-;140:19:26;;:24;132:33;;;;;;2195:30:0;2201:23;2195:5;:30::i;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;22530:1549:7:-;22701:18;22838:13;22928:16;23280:8;22866:10;-1:-1:-1;;;;;22854:22:7;:8;-1:-1:-1;;;;;22854:22:7;;:32;;22883:3;22854:32;;;22879:1;22854:32;22838:48;;;;22912:6;22896:22;;22947:21;22959:8;22947:11;:21::i;:::-;23087:7;;;;23174;;;;22928:40;;-1:-1:-1;23042:176:7;;23067:6;;-1:-1:-1;;;;;23087:7:7;;23108:10;;23132:8;;23154:6;;-1:-1:-1;;;;;23174:7:7;23195:13;23042:11;:176::i;:::-;23026:192;;23291:1;23280:12;;23275:324;23298:17;;;:24;-1:-1:-1;;;;;23294:28:7;;;23275:324;;;23359:229;23388:6;23412:1;:17;;23430:1;-1:-1:-1;;;;;23412:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23412:20:7;23450:10;23478:8;23513:1;23504:6;:10;23517:1;23504:14;23536:1;:7;;;;;;;;;;-1:-1:-1;;;;;23536:7:7;23561:13;23359:11;:229::i;:::-;23343:245;-1:-1:-1;23324:3:7;;23275:324;;;23785:17;;;;23805:1;-1:-1:-1;;;23785:17:7;;;-1:-1:-1;;;;;23785:17:7;:21;23781:292;;;23891:17;;;;24010:7;;;;23838:224;;23867:6;;-1:-1:-1;;;23891:17:7;;;-1:-1:-1;;;;;23891:17:7;;23926:10;;23954:8;;23989:3;23980:12;;;-1:-1:-1;;;;;24010:7:7;24035:13;23838:11;:224::i;:::-;23822:240;;23781:292;22530:1549;;;;;;;;;;:::o;5759:249:12:-;5816:4;5896:19;5836:1;:11;;;-1:-1:-1;;;;;5836:16:12;;5832:55;;;5875:1;5868:8;;;;5832:55;5918:24;5930:1;:11;;;5918;:24::i;:::-;5896:46;;5959:21;5975:4;5959:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;-1:-1:-1;;;5959:21:12;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;;-1:-1:-1;;;;;5959:21:12;;;;;;;;;;;-1:-1:-1;;;5959:21:12;;;;;;;;;;;18253:513:7;18309:17;18338:21;18469:6;18362:19;18373:1;:7;;;18362:10;:19::i;:::-;18404:12;;-1:-1:-1;;;18404:12:7;;-1:-1:-1;;;;;18404:12:7;;-1:-1:-1;18404:12:7;-1:-1:-1;18404:12:7;;-1:-1:-1;18464:296:7;18485:1;:17;;;:24;18481:1;:28;18464:296;;;18534:32;18545:1;:17;;;18563:1;18545:20;;;;;;;;;;;;;;;;18534:10;:32::i;:::-;18665:12;;18530:36;;-1:-1:-1;;;;;;18665:25:7;;;-1:-1:-1;;;18665:12:7;;;;:25;18661:89;;;18723:12;;-1:-1:-1;;;18723:12:7;;-1:-1:-1;;;;;18723:12:7;;-1:-1:-1;18661:89:7;18511:3;;18464:296;;3449:195:0;3516:13;:11;:13::i;:::-;-1:-1:-1;;;;;3547:30:0;;;;3539:39;;;;;;3589:22;:48;;-1:-1:-1;;3589:48:0;-1:-1:-1;;;;;3589:48:0;;;;;;;;;;3449:195::o;20537:1287:7:-;20822:6;20747:18;;20866:19;20877:7;20866:10;:19::i;:::-;20989:12;;;;;;-1:-1:-1;20989:12:7;;;-1:-1:-1;;;;;20989:12:7;20981:26;;;;:47;;;21027:1;21011:13;:17;20981:47;20977:841;;;21181:6;21177:631;;;21219:12;;;;;;;-1:-1:-1;;;;;21219:12:7;:27;21268:7;21297:10;21329:8;21359:7;21388:5;21415:6;21219:220;;;;;;;;-1:-1:-1;;;21219:220:7;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21219:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21465:26:7;;;;21457:35;;;;;;21526:9;21510:25;;21177:631;;;21574:12;;;;;;;-1:-1:-1;;;;;21574:12:7;:26;21622:7;21651:10;21683:8;21713:7;21742:5;21769:6;21574:219;;-1:-1:-1;;;21574:219:7;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21574:219:7;;;;;;;;;;;;;;;;-1:-1:-1;21574:219:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20537:1287;;;;;;;;;;;:::o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;767:94::-;842:12;767:94;:::o;1086:946:8:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1086:946:8;;;-1:-1:-1;1086:946:8;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1086:946:8;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:946:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "4387800", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "ESCAPE_HATCH_CALLER_ROLE()": "1144", - "EVMSCRIPT_REGISTRY_APP()": "1189", - "EVMSCRIPT_REGISTRY_APP_ID()": "726", - "PLUGIN_MANAGER_ROLE()": "infinite", - "addDelegate(string,string,uint64,address)": "infinite", - "addGiver(address,string,string,uint64,address)": "infinite", - "addGiver(string,string,uint64,address)": "infinite", - "addGiverAndDonate(uint64,address,address,uint256)": "infinite", - "addGiverAndDonate(uint64,address,uint256)": "infinite", - "addProject(string,string,address,uint64,uint64,address)": "infinite", - "addValidPluginContract(bytes32)": "infinite", - "addValidPluginContracts(bytes32[])": "infinite", - "addValidPluginInstance(address)": "infinite", - "appId()": "1030", - "canPerform(address,bytes32,uint256[])": "infinite", - "cancelPayment(uint64,uint256)": "infinite", - "cancelPledge(uint64,uint256)": "infinite", - "cancelProject(uint64)": "infinite", - "confirmPayment(uint64,uint256)": "infinite", - "donate(uint64,uint64,address,uint256)": "infinite", - "escapeHatch(address)": "infinite", - "escapeHatchDestination()": "1689", - "getCodeHash(address)": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "1096", - "getPledge(uint64)": "infinite", - "getPledgeAdmin(uint64)": "infinite", - "getPledgeDelegate(uint64,uint64)": "infinite", - "initialize(address)": "1366", - "initialize(address,address)": "infinite", - "isProjectCanceled(uint64)": "infinite", - "isTokenEscapable(address)": "1311", - "isValidPlugin(address)": "infinite", - "kernel()": "1557", - "mCancelPayment(uint256[])": "infinite", - "mConfirmPayment(uint256[])": "infinite", - "mNormalizePledge(uint64[])": "infinite", - "mTransfer(uint64,uint256[],uint64)": "infinite", - "mWithdraw(uint256[])": "infinite", - "mock_time()": "1162", - "normalizePledge(uint64)": "infinite", - "numberOfPledgeAdmins()": "819", - "numberOfPledges()": "534", - "removeValidPluginContract(bytes32)": "infinite", - "removeValidPluginInstance(address)": "infinite", - "setMockedTime(uint256)": "20989", - "transfer(uint64,uint64,uint256,uint64)": "infinite", - "updateDelegate(uint64,address,string,string,uint64)": "infinite", - "updateGiver(uint64,address,string,string,uint64)": "infinite", - "updateProject(uint64,address,string,string,uint64)": "infinite", - "useWhitelist(bool)": "infinite", - "vault()": "1766", - "whitelistDisabled()": "470", - "withdraw(uint64,uint256)": "infinite" - }, - "internal": { - "_getTime()": "215" - } - }, - "methodIdentifiers": { - "ESCAPE_HATCH_CALLER_ROLE()": "b09927a1", - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "PLUGIN_MANAGER_ROLE()": "24fea3b0", - "addDelegate(string,string,uint64,address)": "52dc7dcc", - "addGiver(address,string,string,uint64,address)": "6e802c6a", - "addGiver(string,string,uint64,address)": "7f61fa93", - "addGiverAndDonate(uint64,address,address,uint256)": "007611c6", - "addGiverAndDonate(uint64,address,uint256)": "6ba3cc87", - "addProject(string,string,address,uint64,uint64,address)": "72116e92", - "addValidPluginContract(bytes32)": "c8ae070f", - "addValidPluginContracts(bytes32[])": "32ce8ebc", - "addValidPluginInstance(address)": "79f4542e", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "cancelPayment(uint64,uint256)": "e9c211e2", - "cancelPledge(uint64,uint256)": "af9f4563", - "cancelProject(uint64)": "796d5654", - "confirmPayment(uint64,uint256)": "2ee88808", - "donate(uint64,uint64,address,uint256)": "4c4316c7", - "escapeHatch(address)": "a142d608", - "escapeHatchDestination()": "f5b61230", - "getCodeHash(address)": "81ea4408", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "getPledge(uint64)": "3f657a46", - "getPledgeAdmin(uint64)": "eba8ba06", - "getPledgeDelegate(uint64,uint64)": "2f6b64ca", - "initialize(address)": "c4d66de8", - "initialize(address,address)": "485cc955", - "isProjectCanceled(uint64)": "2101a6ad", - "isTokenEscapable(address)": "892db057", - "isValidPlugin(address)": "4eafbcd5", - "kernel()": "d4aae0c4", - "mCancelPayment(uint256[])": "ef3766e4", - "mConfirmPayment(uint256[])": "9398f5a2", - "mNormalizePledge(uint64[])": "ce17273c", - "mTransfer(uint64,uint256[],uint64)": "d639cd73", - "mWithdraw(uint256[])": "57adafb6", - "mock_time()": "9da47a6b", - "normalizePledge(uint64)": "50f8a803", - "numberOfPledgeAdmins()": "5503d9ba", - "numberOfPledges()": "2a8ec8cc", - "removeValidPluginContract(bytes32)": "b12b5f76", - "removeValidPluginInstance(address)": "6293c702", - "setMockedTime(uint256)": "ab8be231", - "transfer(uint64,uint64,uint256,uint64)": "47c5ef43", - "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", - "updateGiver(uint64,address,string,string,uint64)": "db7c2314", - "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", - "useWhitelist(bool)": "38740291", - "vault()": "fbfa77cf", - "whitelistDisabled()": "1c8e8568", - "withdraw(uint64,uint256)": "43387983" - } - }, - "userdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" - }, - "addGiver(string,string,uint64,address)": { - "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" - }, - "cancelPayment(uint64,uint256)": { - "notice": "`onlyVault` Cancels a withdraw request, changing the PledgeState from Paying back to Pledged" - }, - "cancelPledge(uint64,uint256)": { - "notice": "Transfers `amount` in `idPledge` back to the `oldPledge` that that sent it there in the first place, a Ctrl-z " - }, - "cancelProject(uint64)": { - "notice": "Changes the `project.canceled` flag to `true`; cannot be undone" - }, - "confirmPayment(uint64,uint256)": { - "notice": "`onlyVault` Confirms a withdraw request changing the PledgeState from Paying to Paid" - }, - "donate(uint64,uint64,address,uint256)": { - "notice": "This is how value enters the system and how pledges are created; the ether is sent to the vault, an pledge for the Giver is created (or found), the amount of ETH donated in wei is added to the `amount` in the Giver's Pledge, and an LP transfer is done to the idReceiver for the full amount" - }, - "escapeHatch(address)": { - "notice": "The `escapeHatch()` should only be called as a last resort if a security issue is uncovered or something unexpected happened" - }, - "getPledge(uint64)": { - "notice": "A getter that returns the details of the specified pledge" - }, - "getPledgeAdmin(uint64)": { - "notice": "A constant getter to check the details of a specified Admin" - }, - "getPledgeDelegate(uint64,uint64)": { - "notice": "//////////////////////////Getter to find Delegate w/ the Pledge ID & the Delegate index" - }, - "initialize(address)": { - "notice": "////////////" - }, - "isProjectCanceled(uint64)": { - "notice": "A getter to find if a specified Project has been canceled" - }, - "isTokenEscapable(address)": { - "notice": "Checks to see if `_token` is in the blacklist of tokens" - }, - "mCancelPayment(uint256[])": { - "notice": "`mCancelPayment` allows for multiple pledges to be canceled efficiently" - }, - "mConfirmPayment(uint256[])": { - "notice": "`mConfirmPayment` allows for multiple pledges to be confirmed efficiently" - }, - "mNormalizePledge(uint64[])": { - "notice": "`mNormalizePledge` allows for multiple pledges to be normalized efficiently" - }, - "mTransfer(uint64,uint256[],uint64)": { - "notice": "Transfers multiple amounts within multiple Pledges in an efficient single call " - }, - "mWithdraw(uint256[])": { - "notice": "Authorizes multiple amounts within multiple Pledges to be withdrawn from the `vault` in an efficient single call " - }, - "normalizePledge(uint64)": { - "notice": "////////////////Only affects pledges with the Pledged PledgeState for 2 things: #1: Checks if the pledge should be committed. This means that if the pledge has an intendedProject and it is past the commitTime, it changes the owner to be the proposed project (The UI will have to read the commit time and manually do what this function does to the pledge for the end user at the expiration of the commitTime) /// #2: Checks to make sure that if there has been a cancellation in the chain of projects, the pledge's owner has been changed appropriately. /// This function can be called by anybody at anytime on any pledge. In general it can be called to force the calls of the affected plugins, which also need to be predicted by the UI" - }, - "numberOfPledgeAdmins()": { - "notice": "//////////////////////////A constant getter used to check how many total Admins exist" - }, - "numberOfPledges()": { - "notice": "/////////////////////////A constant getter that returns the total number of pledges" - }, - "transfer(uint64,uint64,uint256,uint64)": { - "notice": "Transfers amounts between pledges for internal accounting" - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" - }, - "updateGiver(uint64,address,string,string,uint64)": { - "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" - }, - "updateProject(uint64,address,string,string,uint64)": { - "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" - }, - "withdraw(uint64,uint256)": { - "notice": "Authorizes a payment be made from the `vault` can be used by the Giver to veto a pre-committed donation from a Delegate to an intendedProject" - } - } - } - } - }, - "./contracts/LiquidPledgingPlugins.sol": { - "LiquidPledgingPlugins": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "whitelistDisabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "PLUGIN_MANAGER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHashes", - "type": "bytes32[]" - } - ], - "name": "addValidPluginContracts", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "useWhitelist", - "type": "bool" - } - ], - "name": "useWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "isValidPlugin", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "removeValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "addValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "getCodeHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "removeValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "addValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vault", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040526069805460ff19169055341561001957600080fd5b610bb8806100286000396000f3006060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029", - "sourceMap": "961:2256:9:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;961:2256:9;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100e25763ffffffff60e060020a6000350416631c8e856881146100e757806324fea3b01461010e57806332ce8ebc1461013357806338740291146101535780634eafbcd51461016b57806360b1e0571461018a5780636293c7021461019d57806379f4542e146101bc57806380afdea8146101db57806381ea4408146101ee5780638b3dd7491461020d5780639b3fdf4c14610220578063a1658fad14610233578063b12b5f7614610296578063c8ae070f146102ac578063d4aae0c4146102c2578063f92a79ff146102f1578063fbfa77cf14610342575b600080fd5b34156100f257600080fd5b6100fa610355565b604051901515815260200160405180910390f35b341561011957600080fd5b61012161035e565b60405190815260200160405180910390f35b341561013e57600080fd5b6101516004803560248101910135610380565b005b341561015e57600080fd5b610151600435151561041a565b341561017657600080fd5b6100fa600160a060020a0360043516610480565b341561019557600080fd5b6101216104fb565b34156101a857600080fd5b610151600160a060020a036004351661052f565b34156101c757600080fd5b610151600160a060020a0360043516610590565b34156101e657600080fd5b610121610608565b34156101f957600080fd5b610121600160a060020a036004351661060e565b341561021857600080fd5b610121610690565b341561022b57600080fd5b610121610696565b341561023e57600080fd5b6100fa60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061071295505050505050565b34156102a157600080fd5b610151600435610850565b34156102b757600080fd5b6101516004356108a8565b34156102cd57600080fd5b6102d5610917565b604051600160a060020a03909116815260200160405180910390f35b34156102fc57600080fd5b6102d560046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061092695505050505050565b341561034d57600080fd5b6102d5610a02565b60695460ff1681565b604051600080516020610b6d8339815191528152601301604051809103902081565b6000604051600080516020610b6d833981519152815260130160405180910390206103cb338260006040518059106103b55750595b9080825280602002602001820160405250610712565b15156103d657600080fd5b600091505b60ff82168390101561041457610409848460ff85168181106103f957fe5b90506020020135600019166108a8565b6001909101906103db565b50505050565b604051600080516020610b6d83398151915281526013016040518091039020610462338260006040518059106103b55750599080825280602002602001820160405250610712565b151561046d57600080fd5b506069805460ff19169115919091179055565b606954600090819060ff168061049d5750600160a060020a038316155b156104ab57600191506104f5565b600160a060020a03831660009081526068602052604090205460ff16156104d557600191506104f5565b6104de8361060e565b60008181526067602052604090205460ff16925090505b50919050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b604051600080516020610b6d8339815191528152601301604051809103902061055782610a16565b610562338383610712565b151561056d57600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206105d8338260006040518059106103b55750599080825280602002602001820160405250610712565b15156105e357600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b60015481565b6000610618610b5a565b823b604051915080825280600060208401863c50806040518082805190602001908083835b6020831061065c5780518252601f19909201916020918201910161063d565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061071c610b5a565b6000808451111561073557835160200290508391508082525b600054600160a060020a03161580610846575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156107dc5780820151838201526020016107c4565b50505050905090810190601f1680156108095780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561082a57600080fd5b6102c65a03f1151561083b57600080fd5b505050604051805190505b9695505050505050565b604051600080516020610b6d8339815191528152601301604051809103902061087882610a36565b610883338383610712565b151561088e57600080fd5b50506000908152606760205260409020805460ff19169055565b604051600080516020610b6d833981519152815260130160405180910390206108f0338260006040518059106103b55750599080825280602002602001820160405250610712565b15156108fb57600080fd5b506000908152606760205260409020805460ff19166001179055565b600054600160a060020a031681565b6000610930610a47565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099757808201518382015260200161097f565b50505050905090810190601f1680156109c45780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156109e257600080fd5b6102c65a03f115156109f357600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b610a1e610b5a565b610a3082600160a060020a0316610b13565b92915050565b610a3e610b5a565b610a3082610b13565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156109e257600080fd5b610b1b610b5a565b6001604051805910610b2a5750595b908082528060200260200182016040525090508181600081518110610b4b57fe5b60209081029091010152919050565b602060405190810160405260008152905600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000a165627a7a72305820d127dfc56526f995a98d861c2f9a4458ca0f18138487e13aa4a8816aa51d04780029", - "sourceMap": "961:2256:9:-;;;;;;;;;-1:-1:-1;;;961:2256:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226;;;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;2140:450;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;1146:134;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1672:174:9;;;;;;;;;;;;;;1286:148;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1440:226::-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;;1440:226;;;;:::o;2008:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;2140:450::-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;-1:-1:-1;2488:40:9;-1:-1:-1;2140:450:9;;;;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;1146:134::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1286:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;115:::-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:117:17;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;961:2256:9:-;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "600000", - "executionCost": "20845", - "totalCost": "620845" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "727", - "EVMSCRIPT_REGISTRY_APP_ID()": "418", - "PLUGIN_MANAGER_ROLE()": "infinite", - "addValidPluginContract(bytes32)": "infinite", - "addValidPluginContracts(bytes32[])": "infinite", - "addValidPluginInstance(address)": "infinite", - "appId()": "612", - "canPerform(address,bytes32,uint256[])": "infinite", - "getCodeHash(address)": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "656", - "isValidPlugin(address)": "infinite", - "kernel()": "919", - "removeValidPluginContract(bytes32)": "infinite", - "removeValidPluginInstance(address)": "infinite", - "useWhitelist(bool)": "infinite", - "vault()": "974", - "whitelistDisabled()": "448" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "PLUGIN_MANAGER_ROLE()": "24fea3b0", - "addValidPluginContract(bytes32)": "c8ae070f", - "addValidPluginContracts(bytes32[])": "32ce8ebc", - "addValidPluginInstance(address)": "79f4542e", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "getCodeHash(address)": "81ea4408", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "isValidPlugin(address)": "4eafbcd5", - "kernel()": "d4aae0c4", - "removeValidPluginContract(bytes32)": "b12b5f76", - "removeValidPluginInstance(address)": "6293c702", - "useWhitelist(bool)": "38740291", - "vault()": "fbfa77cf", - "whitelistDisabled()": "1c8e8568" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "./contracts/LiquidPledgingStorage.sol": { - "ILPVault": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_ref", - "type": "bytes32" - }, - { - "name": "_dest", - "type": "address" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "authorizePayment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "authorizePayment(bytes32,address,address,uint256)": "a5426df1" - } - }, - "userdoc": { - "methods": {} - } - }, - "LiquidPledgingStorage": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "whitelistDisabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vault", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040526005805460ff19169055341561001957600080fd5b610100806100286000396000f30060606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029", - "sourceMap": "604:2197:10:-;;;2506:37;;;-1:-1:-1;;2506:37:10;;;604:2197;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631c8e85688114604d578063fbfa77cf146071575b600080fd5b3415605757600080fd5b605d60aa565b604051901515815260200160405180910390f35b3415607b57600080fd5b608160b3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60055460ff1681565b600554610100900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074d9d7bbdf9db1111999ed5df541c7c34bae37949773a356678e251f819f25260029", - "sourceMap": "604:2197:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2550:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37;;;;;;:::o;2550:21::-;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "51200", - "executionCost": "20312", - "totalCost": "71512" - }, - "external": { - "vault()": "421", - "whitelistDisabled()": "385" - } - }, - "methodIdentifiers": { - "vault()": "fbfa77cf", - "whitelistDisabled()": "1c8e8568" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "./contracts/PledgeAdmins.sol": { - "PledgeAdmins": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "whitelistDisabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "projectId", - "type": "uint64" - } - ], - "name": "isProjectCanceled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "PLUGIN_MANAGER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHashes", - "type": "bytes32[]" - } - ], - "name": "addValidPluginContracts", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "useWhitelist", - "type": "bool" - } - ], - "name": "useWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "isValidPlugin", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addDelegate", - "outputs": [ - { - "name": "idDelegate", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledgeAdmins", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "removeValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "projectAdmin", - "type": "address" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addProject", - "outputs": [ - { - "name": "idProject", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "addValidPluginInstance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "plugin", - "type": "address" - } - ], - "name": "addGiver", - "outputs": [ - { - "name": "idGiver", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "getCodeHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "removeValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "contractHash", - "type": "bytes32" - } - ], - "name": "addValidPluginContract", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idDelegate", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateDelegate", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idGiver", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateGiver", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idAdmin", - "type": "uint64" - } - ], - "name": "getPledgeAdmin", - "outputs": [ - { - "name": "adminType", - "type": "uint8" - }, - { - "name": "addr", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "parentProject", - "type": "uint64" - }, - { - "name": "canceled", - "type": "bool" - }, - { - "name": "plugin", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "idProject", - "type": "uint64" - }, - { - "name": "newAddr", - "type": "address" - }, - { - "name": "newName", - "type": "string" - }, - { - "name": "newUrl", - "type": "string" - }, - { - "name": "newCommitTime", - "type": "uint64" - } - ], - "name": "updateProject", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vault", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idGiver", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "GiverUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idDelegate", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "DelegateUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "idProject", - "type": "uint64" - }, - { - "indexed": false, - "name": "url", - "type": "string" - } - ], - "name": "ProjectUpdated", - "type": "event" - } - ], - "devdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "name": "The name used to identify the Delegate", - "plugin": "This is Delegate's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Delegate's profile often an IPFS hash" - }, - "return": "idxDelegate The id number used to reference this Delegate within the PLEDGE_ADMIN array" - }, - "addGiver(string,string,uint64,address)": { - "params": { - "commitTime": "The length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "name": "The name used to identify the Giver", - "plugin": "This is Giver's liquid pledge plugin allowing for extended functionality", - "url": "The link to the Giver's profile often an IPFS hash" - }, - "return": "idGiver The id number used to reference this Admin" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "params": { - "commitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to another Delegate and they pledge those funds to a project", - "name": "The name used to identify the Project", - "parentProject": "The Admin id number for the parent project or 0 if there is no parentProject", - "plugin": "This is Project's liquid pledge plugin allowing for extended functionality", - "projectAdmin": "The address for the trusted project manager", - "url": "The link to the Project's profile often an IPFS hash" - }, - "return": "idProject The id number used to reference this Admin" - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "getPledgeAdmin(uint64)": { - "return": "addr Account or contract address for adminname Name of the pledgeAdminurl The link to the Project's profile often an IPFS hashcommitTime The length of time in seconds the Admin has to veto when the Admin delegates to a Delegate and that Delegate pledges those funds to a projectparentProject The Admin id number for the parent project or 0 if there is no parentProjectcanceled 0 for Delegates & Givers, true if a Project has been canceledplugin This is Project's liquidPledging plugin allowing for extended functionality" - }, - "isProjectCanceled(uint64)": { - "params": { - "projectId": "The Admin id number used to specify the Project" - }, - "return": "True if the Project has been canceled" - }, - "numberOfPledgeAdmins()": { - "return": "The total number of admins (Givers, Delegates and Projects) ." - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "params": { - "idDelegate": "The Admin id number used to specify the Delegate", - "newAddr": "The new address that represents this Delegate", - "newCommitTime": "Sets the length of time in seconds that this delegate can be vetoed. Whenever this delegate is in a delegate chain the time allowed to veto any event must be greater than or equal to this time.", - "newName": "The new name used to identify the Delegate", - "newUrl": "The new link to the Delegate's profile often an IPFS hash" - } - }, - "updateGiver(uint64,address,string,string,uint64)": { - "params": { - "idGiver": "This is the Admin id number used to specify the Giver", - "newAddr": "The new address that represents this Giver", - "newCommitTime": "Sets the length of time in seconds the Giver has to veto when the Giver's delegates Pledge funds to a project", - "newName": "The new name used to identify the Giver", - "newUrl": "The new link to the Giver's profile often an IPFS hash" - } - }, - "updateProject(uint64,address,string,string,uint64)": { - "params": { - "idProject": "The Admin id number used to specify the Project", - "newAddr": "The new address that represents this Project", - "newCommitTime": "Sets the length of time in seconds the Project has to veto when the Project delegates to a Delegate and they pledge those funds to a project", - "newName": "The new name used to identify the Project", - "newUrl": "The new link to the Project's profile often an IPFS hash" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040526069805460ff19169055341561001957600080fd5b61230b806100286000396000f3006060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029", - "sourceMap": "919:12171:11:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;919:12171:11;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106101505763ffffffff60e060020a6000350416631c8e856881146101555780632101a6ad1461017c57806324fea3b01461019c57806332ce8ebc146101c157806338740291146101e15780634eafbcd5146101f957806352dc7dcc146102185780635503d9ba1461027857806360b1e0571461028b5780636293c7021461029e5780636e802c6a146102bd57806372116e921461037857806379f4542e146103ca5780637f61fa93146103e957806380afdea81461042c57806381ea44081461043f5780638b3dd7491461045e5780639b3fdf4c14610471578063a1658fad14610484578063b12b5f76146104e7578063c8ae070f146104fd578063cc19ecf714610513578063d4aae0c414610560578063db7c23141461058f578063eba8ba06146105dc578063f6b24b1c14610734578063f92a79ff14610781578063fbfa77cf146107d2575b600080fd5b341561016057600080fd5b6101686107e5565b604051901515815260200160405180910390f35b341561018757600080fd5b61016867ffffffffffffffff600435166107ee565b34156101a757600080fd5b6101af610897565b60405190815260200160405180910390f35b34156101cc57600080fd5b6101df60048035602481019101356108b9565b005b34156101ec57600080fd5b6101df6004351515610953565b341561020457600080fd5b610168600160a060020a03600435166109b9565b341561022357600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a0360643516610a30565b60405167ffffffffffffffff909116815260200160405180910390f35b341561028357600080fd5b6101af610cc7565b341561029657600080fd5b6101af610cd2565b34156102a957600080fd5b6101df600160a060020a0360043516610d06565b34156102c857600080fd5b61025b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050833567ffffffffffffffff169360200135600160a060020a03169250610d67915050565b341561038357600080fd5b61025b6024600480358281019290820135918135918201910135600160a060020a0360443581169067ffffffffffffffff6064358116916084359091169060a43516610fd3565b34156103d557600080fd5b6101df600160a060020a0360043516611492565b34156103f457600080fd5b61025b602460048035828101929082013591813591820191013567ffffffffffffffff60443516600160a060020a036064351661150a565b341561043757600080fd5b6101af611586565b341561044a57600080fd5b6101af600160a060020a036004351661158c565b341561046957600080fd5b6101af61160e565b341561047c57600080fd5b6101af611614565b341561048f57600080fd5b61016860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061169095505050505050565b34156104f257600080fd5b6101df6004356117ce565b341561050857600080fd5b6101df600435611826565b341561051e57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611895565b341561056b57600080fd5b61057361199f565b604051600160a060020a03909116815260200160405180910390f35b341561059a57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a0316926044358083019390810135926064359081019291013590608435166119ae565b34156105e757600080fd5b6105fc67ffffffffffffffff60043516611ab8565b6040518089600281111561060c57fe5b60ff168152600160a060020a03898116602083015267ffffffffffffffff8781166080840152861660a083015284151560c0830152831660e08201526101008282038101604083019081529160608101910189818151815260200191508051906020019080838360005b8381101561068e578082015183820152602001610676565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b838110156106f15780820151838201526020016106d9565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561073f57600080fd5b6101df6004803567ffffffffffffffff9081169160248035600160a060020a031692604435808301939081013592606435908101929101359060843516611c8d565b341561078c57600080fd5b61057360046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611d9795505050505050565b34156107dd57600080fd5b610573611e73565b60695460ff1681565b6000806107fa83611e87565b90506000815460ff16600281111561080e57fe5b141561081d5760009150610891565b6002815460ff16600281111561082f57fe5b1461083657fe5b600181015468010000000000000000900460ff16156108585760019150610891565b600181015467ffffffffffffffff1615156108765760009150610891565b600181015461088e9067ffffffffffffffff166107ee565b91505b50919050565b6040516000805160206122a08339815191528152601301604051809103902081565b60006040516000805160206122a083398151915281526013016040518091039020610904338260006040518059106108ee5750595b9080825280602002602001820160405250611690565b151561090f57600080fd5b600091505b60ff82168390101561094d57610942848460ff851681811061093257fe5b9050602002013560001916611826565b600190910190610914565b50505050565b6040516000805160206122a08339815191528152601301604051809103902061099b338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156109a657600080fd5b506069805460ff19169115919091179055565b606954600090819060ff16806109d65750600160a060020a038316155b156109e45760019150610891565b600160a060020a03831660009081526068602052604090205460ff1615610a0e5760019150610891565b610a178361158c565b60009081526067602052604090205460ff169392505050565b6000610a3b826109b9565b1515610a4657600080fd5b5060648054908160018101610a5b83826120ac565b91600052602060002090600402016000610100604051908101604052806001815260200133600160a060020a031681526020018767ffffffffffffffff168152602001600067ffffffffffffffff16815260200160001515815260200186600160a060020a031681526020018b8b8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff19166001836002811115610b4e57fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610c469291602001906120dd565b5060e082015181600301908051610c619291602001906120dd565b505050508067ffffffffffffffff167fd921f0ff8d5f67ca22b52c5b4be3463a8cabd9d95c28a02dd7c86f9deb3329be86866040516020808252810182905280604081018484808284378201915050935050505060405180910390a29695505050505050565b606454600019015b90565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040516000805160206122a083398151915281526013016040518091039020610d2e82611ecf565b610d39338383611690565b1515610d4457600080fd5b5050600160a060020a03166000908152606860205260409020805460ff19169055565b6000610d72826109b9565b1515610d7d57600080fd5b5060648054908160018101610d9283826120ac565b916000526020600020906004020160006101006040519081016040528060008152600160a060020a03808c16602083015267ffffffffffffffff891660408301526000606083018190526080830152871660a082015260c081018a905260e00188905291905081518154829060ff19166001836002811115610e1057fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c082015181600201908051610f089291602001906120dd565b5060e082015181600301908051610f239291602001906120dd565b505050508067ffffffffffffffff167fad9c62a4382fd0ddbc4a0cf6c2bc7df75b0b8beb786ff59014f39daaea7f232f8560405160208082528190810183818151815260200191508051906020019080838360005b83811015610f90578082015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a295945050505050565b600080610fdf836109b9565b1515610fea57600080fd5b67ffffffffffffffff85161561120f5761100385611e87565b905060146111fb826101006040519081016040528154909190829060ff16600281111561102c57fe5b600281111561103757fe5b81528154610100808204600160a060020a0390811660208086019190915260a860020a90930467ffffffffffffffff908116604080870191909152600180880154928316606088015268010000000000000000830460ff1615156080880152690100000000000000000090920490921660a08601526002808701805460c090970196909592811615909402600019019093169290920491601f83018190048102019051908101604052809291908181526020018280546001816001161561010002031660029004801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b505050505081525050611eef565b67ffffffffffffffff161061120f57600080fd5b606480549250826001810161122483826120ac565b9160005260206000209060040201600061010060405190810160405280600281526020018a600160a060020a031681526020018867ffffffffffffffff1681526020018967ffffffffffffffff16815260200160001515815260200187600160a060020a031681526020018e8e8080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505081526020018c8c8080601f016020809104026020016040519081016040528181529291906020840183838082843750505092909352509193925083915050518154829060ff1916600183600281111561131657fe5b021790555060208201518154600160a060020a03919091166101000261010060a860020a03199091161781556040820151815467ffffffffffffffff9190911660a860020a026000805160206122c0833981519152909116178155606082015160018201805467ffffffffffffffff191667ffffffffffffffff929092169190911790556080820151600182018054911515680100000000000000000268ff00000000000000001990921691909117905560a08201518160010160096101000a815481600160a060020a030219169083600160a060020a0316021790555060c08201518160020190805161140e9291602001906120dd565b5060e0820151816003019080516114299291602001906120dd565b505050508167ffffffffffffffff167f9958fc92731727637b02f1ac1e6caf2814442c27e1d962f0c477cd14280f586d89896040516020808252810182905280604081018484808284378201915050935050505060405180910390a25098975050505050505050565b6040516000805160206122a0833981519152815260130160405180910390206114da338260006040518059106108ee5750599080825280602002602001820160405250611690565b15156114e557600080fd5b50600160a060020a03166000908152606860205260409020805460ff19166001179055565b600061157b3388888080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505087878080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050508686610d67565b979650505050505050565b60015481565b6000611596612157565b823b604051915080825280600060208401863c50806040518082805190602001908083835b602083106115da5780518252601f1990920191602091820191016115bb565b6001836020036101000a03801982511681845116179092525050509190910192506040915050518091039020915050919050565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061169a612157565b600080845111156116b357835160200290508391508082525b600054600160a060020a031615806117c4575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561175a578082015183820152602001611742565b50505050905090810190601f1680156117875780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b505050604051805190505b9695505050505050565b6040516000805160206122a0833981519152815260130160405180910390206117f682611f64565b611801338383611690565b151561180c57600080fd5b50506000908152606760205260409020805460ff19169055565b6040516000805160206122a08339815191528152601301604051809103902061186e338260006040518059106108ee5750599080825280602002602001820160405250611690565b151561187957600080fd5b506000908152606760205260409020805460ff19166001179055565b60006118a088611e87565b805490915033600160a060020a0390811661010090920416146118c257600080fd5b6001815460ff1660028111156118d457fe5b146118de57600080fd5b805461010060a860020a031916610100600160a060020a0389160217815561190a600282018787612169565b50611919600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f6586deed9fa035704e9886588d904801e7e86d1ebd926905fa03a0018531b2fd85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600054600160a060020a031681565b60006119b988611e87565b805490915033600160a060020a0390811661010090920416146119db57600080fd5b6000815460ff1660028111156119ed57fe5b146119f757600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611a23600282018787612169565b50611a32600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167f4b2f87168338ea08f27c7f7b2dfe4e61feb620ffe9a6a6a18afeaf94546075bf85856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b600080611ac3612157565b611acb612157565b6000806000806000611adc8a611e87565b80546002808301805460ff84169d5061010093849004600160a060020a03169c5093945092600181161590920260001901909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b915780601f10611b6657610100808354040283529160200191611b91565b820191906000526020600020905b815481529060010190602001808311611b7457829003601f168201915b50505050509650806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c305780601f10611c0557610100808354040283529160200191611c30565b820191906000526020600020905b815481529060010190602001808311611c1357829003601f168201915b505084546001909501549c9e9b9d50999b929a60a860020a90940467ffffffffffffffff9081169a5083169850505068010000000000000000810460ff16955069010000000000000000009004600160a060020a03169350915050565b6000611c9888611e87565b805490915033600160a060020a039081166101009092041614611cba57600080fd5b6002815460ff166002811115611ccc57fe5b14611cd657600080fd5b805461010060a860020a031916610100600160a060020a03891602178155611d02600282018787612169565b50611d11600382018585612169565b50805467ffffffffffffffff80841660a860020a026000805160206122c083398151915290921691909117825588167fab039fa652845d2aa9439ffe6f2130ee7203ed63f29b71bed5b3b74f27c5870785856040516020808252810182905280604081018484808284378201915050935050505060405180910390a25050505050505050565b6000611da1611f75565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e08578082015183820152602001611df0565b50505050905090810190601f168015611e355780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515611e5357600080fd5b6102c65a03f11515611e6457600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60645460009067ffffffffffffffff831610611ea257600080fd5b6064805467ffffffffffffffff8416908110611eba57fe5b90600052602060002090600402019050919050565b611ed7612157565b611ee982600160a060020a0316612065565b92915050565b600080600283516002811115611f0157fe5b14611f0857fe5b826060015167ffffffffffffffff161515611f265760019150610891565b611f338360600151611e87565b9050611f5a816101006040519081016040528154909190829060ff16600281111561102c57fe5b6001019392505050565b611f6c612157565b611ee982612065565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561204157600080fd5b6102c65a03f1151561205257600080fd5b50505060405180519250829150505b5090565b61206d612157565b600160405180591061207c5750595b90808252806020026020018201604052509050818160008151811061209d57fe5b60209081029091010152919050565b8154818355818115116120d8576004028160040283600052602060002091820191016120d891906121d7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061211e57805160ff191683800117855561214b565b8280016001018555821561214b579182015b8281111561214b578251825591602001919060010190612130565b5061206192915061223e565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121aa5782800160ff1982351617855561214b565b8280016001018555821561214b579182015b8281111561214b5782358255916020019190600101906121bc565b610ccf91905b808211156120615780547fffffff00000000000000000000000000000000000000000000000000000000009081168255600182018054909116905560006122276002830182612258565b612235600383016000612258565b506004016121dd565b610ccf91905b808211156120615760008155600101612244565b50805460018160011615610100020316600290046000825580601f1061227e575061229c565b601f01602090049060005260206000209081019061229c919061223e565b505600504c5547494e5f4d414e414745525f524f4c4500000000000000000000000000ffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffa165627a7a72305820b9c8f4b4d9ceb9f5522e2717220d3907dbca9e1029c16727213f1a29dca643080029", - "sourceMap": "919:12171:11:-;;;;;;;;;-1:-1:-1;;;919:12171:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11679:478:11;;;;;;;;;;;;;;;;1061:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1440:226;;;;;;;;;;;;;;;;;;;;;;;2008:126;;;;;;;;;;;;;;;;2140:450;;;;;;;;;;-1:-1:-1;;;;;2140:450:9;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4987:589:11;;;;;;;;;;;;;;;;;;;;;;;10029:101;;;;;;;;;;;;68:84:30;;;;;;;;;;;;1852:150:9;;;;;;;;;;-1:-1:-1;;;;;1852:150:9;;;;;2537:611:11;;;;;;;;;;;;;-1:-1:-1;;;;;2537:611:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2537:611:11;;-1:-1:-1;;;2537:611:11;;;;;;;;-1:-1:-1;;;;;2537:611:11;;-1:-1:-1;2537:611:11;;-1:-1:-1;;2537:611:11;7643:901;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7643:901:11;;;;;;;;;;;;;;;;;;;;;;1146:134:9;;;;;;;;;;-1:-1:-1;;;;;1146:134:9;;;;;2123:313:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2123:313:11;;;;;113:20:22;;;;;;;;;;;;2596:619:9;;;;;;;;;;-1:-1:-1;;;;;2596:619:9;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;1672:174:9;;;;;;;;;;;;;;1286:148;;;;;;;;;;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6330:542:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3788:522:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;10898:574;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10898:574:11;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9248:531:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;11679:478:11:-;11753:4;11773:21;11797;11808:9;11797:10;:21::i;:::-;11773:45;-1:-1:-1;11848:21:11;11833:11;;;;:36;;;;;;;;;11829:79;;;11892:5;11885:12;;;;11829:79;11940:23;11925:11;;;;:38;;;;;;;;;11918:46;;;;11979:10;;;;;;;;;11975:52;;;12012:4;12005:11;;;;11975:52;12040:15;;;;;;:20;12036:63;;;12083:5;12076:12;;;;12036:63;12134:15;;;;12116:34;;12134:15;;12116:17;:34::i;:::-;12109:41;;11679:478;;;;;:::o;1061:78:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1061:78;:::o;1440:226::-;1549:7;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1559:1:9;1549:11;;1544:116;1562:25;;;;;;1544:116;;;1608:41;1631:14;;:17;;;;;;;;;;;;;;;;;;;1608:22;:41::i;:::-;1589:3;;;;;1544:116;;;1440:226;;;;:::o;2008:126::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;2094:17:9;:33;;-1:-1:-1;;2094:33:9;2114:13;;2094:33;;;;;;2008:126::o;2140:450::-;2217:17;;2197:4;;;;2217:17;;;:32;;-1:-1:-1;;;;;;2238:11:9;;;2217:32;2213:74;;;2272:4;2265:11;;;;2213:74;-1:-1:-1;;;;;2340:29:9;;;;;;:23;:29;;;;;;;;2336:71;;;2392:4;2385:11;;;;2336:71;2511:17;2523:4;2511:11;:17::i;:::-;2546:37;;;;:23;:37;;;;;;;;;2140:450;-1:-1:-1;;;2140:450:9:o;4987:589:11:-;5138:17;5180:21;5194:6;5180:13;:21::i;:::-;5172:30;;;;;;;;-1:-1:-1;5249:6:11;:13;;;;5274:254;;;;5249:6;5274:254;;:::i;:::-;;;;;;;;;;;;5299:219;;;;;;;;;5328:24;5299:219;;;;5370:10;-1:-1:-1;;;;;5299:219:11;;;;;5398:10;5299:219;;;;;;5426:1;5299:219;;;;;;5445:5;5299:219;;;;;;5468:6;-1:-1:-1;;;;;5299:219:11;;;;;5492:4;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:3;;5299:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5299:219:11;;;;-1:-1:-1;5274:254:11;;;-1:-1:-1;5274:254:11;;-1:-1:-1;;5274:254:11;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;-1:-1:-1;;;;;;5274:254:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;5274:254:11;-1:-1:-1;;;;;;;;;;;5274:254:11;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5274:254:11;;;;;-1:-1:-1;;;;;5274:254:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5553:10;5539:30;;;5565:3;;5539:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:589;;;;;;;;:::o;10029:101::-;10106:6;:13;-1:-1:-1;;10106:17:11;10029:101;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;1852:150:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1937:9;1941:4;1937:3;:9::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;;;;;;1958:29:9;1990:5;1958:29;;;:23;:29;;;;;:37;;-1:-1:-1;;1958:37:9;;;1852:150::o;2537:611:11:-;2705:14;2743:21;2757:6;2743:13;:21::i;:::-;2735:30;;;;;;;;-1:-1:-1;2809:6:11;:13;;;;2861:245;;;;2809:6;2861:245;;:::i;:::-;;;;;;;;;;;;2886:210;;;;;;;;;2915:21;2886:210;;-1:-1:-1;;;;;2886:210:11;;;;;;;;;;;;;;-1:-1:-1;2886:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:245;;-1:-1:-1;2861:245:11;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;-1:-1:-1;;;;;;2861:245:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;2861:245:11;-1:-1:-1;;;;;;;;;;;2861:245:11;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2861:245:11;;;;;-1:-1:-1;;;;;2861:245:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3128:7;3117:24;;;3137:3;3117:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2537:611:11;;;;;;;:::o;7643:901::-;7853:16;7965:21;7894;7908:6;7894:13;:21::i;:::-;7886:30;;;;;;;;7931:18;;;;7927:250;;7989:25;8000:13;7989:10;:25::i;:::-;7965:49;;1096:2;8123:19;8140:1;8123:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8123:19:11;;;;;;;;;;;-1:-1:-1;;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8123:19:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:19::i;:::-;:42;;;8115:51;;;;;;8206:6;:13;;;-1:-1:-1;8206:13:11;8231:267;;;;8206:6;8231:267;;:::i;:::-;;;;;;;;;;;;8256:232;;;;;;;;;8285:23;8256:232;;;;8326:12;-1:-1:-1;;;;;8256:232:11;;;;;8356:10;8256:232;;;;;;8384:13;8256:232;;;;;;8415:5;8256:232;;;;;;8438:6;-1:-1:-1;;;;;8256:232:11;;;;;8462:4;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8484:3;;8256:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8256:232:11;;;;-1:-1:-1;8231:267:11;;;-1:-1:-1;8231:267:11;;-1:-1:-1;;8231:267:11;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;-1:-1:-1;;;;;;8231:267:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;8231:267:11;-1:-1:-1;;;;;;;;;;;8231:267:11;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8231:267:11;;;;;-1:-1:-1;;;;;8231:267:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8522:9;8509:28;;;8533:3;;8509:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7643:901;;;;;;;;;;;:::o;1146:134:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;;;;;;1237:29:9;;;;;:23;:29;;;;;:36;;-1:-1:-1;;1237:36:9;1269:4;1237:36;;;1146:134::o;2123:313:11:-;2271:14;2308:121;2330:10;2354:4;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:3;;2308:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:10;2413:6;2308:8;:121::i;:::-;2301:128;2123:313;-1:-1:-1;;;;;;;2123:313:11:o;113:20:22:-;;;;:::o;2596:619:9:-;2651:7;2670:19;;:::i;:::-;2812:4;2800:11;2980:4;2974:5;2964:21;;3013:4;3005:6;2998;3160:4;3157:1;3150:4;3142:6;3138:3;3132:4;3120:11;2708:467;3201:6;3191:17;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;377:2;365:6;;;-1:-1;;;3:399;;;;;-1:-1;3:399;;-1:-1;;3:399;;;;;;3184:24:9;;2596:619;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;1672:174:9:-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;1765:17;1769:12;1765:3;:17::i;:::-;444:37:23;455:10;467:5;474:6;444:10;:37::i;:::-;436:46;;;;;;;;-1:-1:-1;;1834:5:9;1794:37;;;:23;:37;;;;;:45;;-1:-1:-1;;1794:45:9;;;1672:174::o;1286:148::-;1107:32;;-1:-1:-1;;;;;;;;;;;1107:32:9;;;;;;;;;;;306:47:23;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;-1:-1:-1;1383:37:9;;;;:23;:37;;;;;:44;;-1:-1:-1;;1383:44:9;1423:4;1383:44;;;1286:148::o;6330:542:11:-;6513:28;6544:22;6555:10;6544;:22::i;:::-;6598:13;;6513:53;;-1:-1:-1;6584:10:11;-1:-1:-1;;;;;6584:27:11;;;6598:13;;;;;6584:27;6576:36;;;;;;6652:24;6630:18;;;;:46;;;;;;;;;6622:55;;;;;;6687:23;;-1:-1:-1;;;;;;6687:23:11;;-1:-1:-1;;;;;6687:23:11;;;;;;6720;:13;;;6736:7;;6720:23;:::i;:::-;-1:-1:-1;6753:21:11;:12;;;6768:6;;6753:21;:::i;:::-;-1:-1:-1;6784:35:11;;;;;;-1:-1:-1;;;6784:35:11;-1:-1:-1;;;;;;;;;;;6784:35:11;;;;;;;;;6830;;;6858:6;;6830:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6330:542;;;;;;;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;3788:522:11:-;3965:25;3993:19;4004:7;3993:10;:19::i;:::-;4044:10;;3965:47;;-1:-1:-1;4030:10:11;-1:-1:-1;;;;;4030:24:11;;;4044:10;;;;;4030:24;4022:33;;;;;;4092:21;4073:15;;;;:40;;;;;;;;;4065:49;;;;;;4143:20;;-1:-1:-1;;;;;;4143:20:11;;-1:-1:-1;;;;;4143:20:11;;;;;;4173;:10;;;4186:7;;4173:20;:::i;:::-;-1:-1:-1;4203:18:11;:9;;;4215:6;;4203:18;:::i;:::-;-1:-1:-1;4231:32:11;;;;;;-1:-1:-1;;;4231:32:11;-1:-1:-1;;;;;;;;;;;4231:32:11;;;;;;;;;4274:29;;;4296:6;;4274:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3788:522;;;;;;;;:::o;10898:574::-;10970:25;11005:12;11027:11;;:::i;:::-;11048:10;;:::i;:::-;11068:17;11095:20;11125:13;11148:14;11179:21;11203:19;11214:7;11203:10;:19::i;:::-;11244:11;;11295:6;;;;11288:13;;11244:11;;;;-1:-1:-1;11244:11:11;11272:6;;;;-1:-1:-1;;;;;11272:6:11;;-1:-1:-1;11244:11:11;;-1:-1:-1;11295:6:11;11244:11;11288:13;;;;;;-1:-1:-1;;11288:13:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11317:1;:5;;11311:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11345:12:11;;11383:15;;;;;10898:574;;;;-1:-1:-1;10898:574:11;;11311:11;;-1:-1:-1;;;11345:12:11;;;;;;;;-1:-1:-1;11383:15:11;;;-1:-1:-1;;;11419:10:11;;;;;;-1:-1:-1;11456:8:11;;;-1:-1:-1;;;;;11456:8:11;;-1:-1:-1;10898:574:11;-1:-1:-1;;10898:574:11:o;9248:531::-;9429:27;9459:21;9470:9;9459:10;:21::i;:::-;9513:12;;9429:51;;-1:-1:-1;9499:10:11;-1:-1:-1;;;;;9499:26:11;;;9513:12;;;;;9499:26;9491:35;;;;;;9565:23;9544:17;;;;:44;;;;;;;;;9536:53;;;;;;9600:22;;-1:-1:-1;;;;;;9600:22:11;;-1:-1:-1;;;;;9600:22:11;;;;;;9632;:12;;;9647:7;;9632:22;:::i;:::-;-1:-1:-1;9664:20:11;:11;;;9678:6;;9664:20;:::i;:::-;-1:-1:-1;9694:34:11;;;;;;-1:-1:-1;;;9694:34:11;-1:-1:-1;;;;;;;;;;;9694:34:11;;;;;;;;;9739:33;;;9765:6;;9739:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9248:531;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;12395:161:11:-;12503:6;:13;12454:11;;12493:23;;;;12485:32;;;;;;12534:6;:15;;;;;;;;;;;;;;;;;;;;;;12527:22;;12395:161;;;:::o;354:101:17:-;402:11;;:::i;:::-;432:16;444:2;-1:-1:-1;;;;;436:11:17;432:3;:16::i;:::-;425:23;354:101;-1:-1:-1;;354:101:17:o;12772:316:11:-;12835:6;;12875:23;12860:1;:11;:38;;;;;;;;;12853:46;;;;12914:1;:15;;;:20;;;12910:60;;;12957:1;12950:9;;;;12910:60;13009:27;13020:1;:15;;;13009:10;:27::i;:::-;12980:56;;13053:24;13070:6;13053:24;;;;;;;;;;;;;;;;;;;;;;;;;13080:1;13053:28;;12772:316;-1:-1:-1;;;12772:316:11:o;115:101:17:-;163:11;;:::i;:::-;193:16;205:2;193:3;:16::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;1358:117:17:-;1406:11;;:::i;:::-;1447:1;1433:16;;;;;;;;;;;;;;;;;;;;;;;;1429:20;;1466:2;1459:1;1461;1459:4;;;;;;;;;;;;;;;;:9;1358:117;;-1:-1:-1;1358:117:17:o;919:12171:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:12171:11;;;-1:-1:-1;919:12171:11;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;919:12171:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "1794200", - "executionCost": "22104", - "totalCost": "1816304" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "859", - "EVMSCRIPT_REGISTRY_APP_ID()": "484", - "PLUGIN_MANAGER_ROLE()": "infinite", - "addDelegate(string,string,uint64,address)": "infinite", - "addGiver(address,string,string,uint64,address)": "infinite", - "addGiver(string,string,uint64,address)": "infinite", - "addProject(string,string,address,uint64,uint64,address)": "infinite", - "addValidPluginContract(bytes32)": "infinite", - "addValidPluginContracts(bytes32[])": "infinite", - "addValidPluginInstance(address)": "infinite", - "appId()": "744", - "canPerform(address,bytes32,uint256[])": "infinite", - "getCodeHash(address)": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "788", - "getPledgeAdmin(uint64)": "infinite", - "isProjectCanceled(uint64)": "infinite", - "isValidPlugin(address)": "infinite", - "kernel()": "1073", - "numberOfPledgeAdmins()": "600", - "removeValidPluginContract(bytes32)": "infinite", - "removeValidPluginInstance(address)": "infinite", - "updateDelegate(uint64,address,string,string,uint64)": "infinite", - "updateGiver(uint64,address,string,string,uint64)": "infinite", - "updateProject(uint64,address,string,string,uint64)": "infinite", - "useWhitelist(bool)": "infinite", - "vault()": "1194", - "whitelistDisabled()": "448" - }, - "internal": { - "_findAdmin(uint64)": "563", - "_getProjectLevel(struct LiquidPledgingStorage.PledgeAdmin memory)": "infinite" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "PLUGIN_MANAGER_ROLE()": "24fea3b0", - "addDelegate(string,string,uint64,address)": "52dc7dcc", - "addGiver(address,string,string,uint64,address)": "6e802c6a", - "addGiver(string,string,uint64,address)": "7f61fa93", - "addProject(string,string,address,uint64,uint64,address)": "72116e92", - "addValidPluginContract(bytes32)": "c8ae070f", - "addValidPluginContracts(bytes32[])": "32ce8ebc", - "addValidPluginInstance(address)": "79f4542e", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "getCodeHash(address)": "81ea4408", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "getPledgeAdmin(uint64)": "eba8ba06", - "isProjectCanceled(uint64)": "2101a6ad", - "isValidPlugin(address)": "4eafbcd5", - "kernel()": "d4aae0c4", - "numberOfPledgeAdmins()": "5503d9ba", - "removeValidPluginContract(bytes32)": "b12b5f76", - "removeValidPluginInstance(address)": "6293c702", - "updateDelegate(uint64,address,string,string,uint64)": "cc19ecf7", - "updateGiver(uint64,address,string,string,uint64)": "db7c2314", - "updateProject(uint64,address,string,string,uint64)": "f6b24b1c", - "useWhitelist(bool)": "38740291", - "vault()": "fbfa77cf", - "whitelistDisabled()": "1c8e8568" - } - }, - "userdoc": { - "methods": { - "addDelegate(string,string,uint64,address)": { - "notice": "Creates a Delegate Admin with the `msg.sender` as the Admin addr" - }, - "addGiver(string,string,uint64,address)": { - "notice": "/////////////////Creates a Giver Admin with the `msg.sender` as the Admin address" - }, - "addProject(string,string,address,uint64,uint64,address)": { - "notice": "Creates a Project Admin with the `msg.sender` as the Admin addr" - }, - "getPledgeAdmin(uint64)": { - "notice": "A constant getter to check the details of a specified Admin" - }, - "isProjectCanceled(uint64)": { - "notice": "A getter to find if a specified Project has been canceled" - }, - "numberOfPledgeAdmins()": { - "notice": "//////////////////////////A constant getter used to check how many total Admins exist" - }, - "updateDelegate(uint64,address,string,string,uint64)": { - "notice": "Updates a Delegate's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Delegate" - }, - "updateGiver(uint64,address,string,string,uint64)": { - "notice": "Updates a Giver's info to change the address, name, url, or commitTime, it cannot be used to change a plugin, and it must be called by the current address of the Giver" - }, - "updateProject(uint64,address,string,string,uint64)": { - "notice": "Updates a Project's info to change the address, name, url, or commitTime, it cannot be used to change a plugin or a parentProject, and it must be called by the current address of the Project" - } - } - } - } - }, - "./contracts/Pledges.sol": { - "Pledges": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "whitelistDisabled", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfPledges", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "idPledge", - "type": "uint64" - } - ], - "name": "getPledge", - "outputs": [ - { - "name": "amount", - "type": "uint256" - }, - { - "name": "owner", - "type": "uint64" - }, - { - "name": "nDelegates", - "type": "uint64" - }, - { - "name": "intendedProject", - "type": "uint64" - }, - { - "name": "commitTime", - "type": "uint64" - }, - { - "name": "oldPledge", - "type": "uint64" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "pledgeState", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "vault", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "getPledge(uint64)": { - "params": { - "idPledge": "the id number of the pledge being queried" - }, - "return": "the amount, owner, the number of delegates (but not the actual delegates, the intendedProject (if any), the current commit time and the previous pledge this pledge was derived from" - }, - "numberOfPledges()": { - "return": "The total number of Pledges in the system" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040526069805460ff19169055341561001957600080fd5b61091a806100286000396000f3006060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029", - "sourceMap": "920:5090:12:-;;;2506:37:10;;;-1:-1:-1;;2506:37:10;;;920:5090:12;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100955763ffffffff60e060020a6000350416631c8e8568811461009a5780632a8ec8cc146100c15780633f657a46146100e657806360b1e0571461017657806380afdea8146101895780638b3dd7491461019c5780639b3fdf4c146101af578063a1658fad146101c2578063d4aae0c414610225578063f92a79ff14610254578063fbfa77cf146102a5575b600080fd5b34156100a557600080fd5b6100ad6102b8565b604051901515815260200160405180910390f35b34156100cc57600080fd5b6100d46102c1565b60405190815260200160405180910390f35b34156100f157600080fd5b61010667ffffffffffffffff600435166102cb565b60405188815267ffffffffffffffff8089166020830152878116604083015286811660608301528581166080830152841660a0820152600160a060020a03831660c082015260e0810182600281111561015b57fe5b60ff1681526020019850505050505050505060405180910390f35b341561018157600080fd5b6100d4610483565b341561019457600080fd5b6100d46104b7565b34156101a757600080fd5b6100d46104bd565b34156101ba57600080fd5b6100d46104c3565b34156101cd57600080fd5b6100ad60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061053f95505050505050565b341561023057600080fd5b61023861067d565b604051600160a060020a03909116815260200160405180910390f35b341561025f57600080fd5b61023860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068c95505050505050565b34156102b057600080fd5b610238610768565b60695460ff1681565b6065546000190190565b6000806000806000806000806102df610890565b6102e88a61077c565b6101006040519081016040529081600082015481526020016001820180548060200260200160405190810160405280929190818152602001828054801561038257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161033d5790505b505050918352505060028281015467ffffffffffffffff80821660208501526801000000000000000082048116604085015270010000000000000000000000000000000082048116606085015278010000000000000000000000000000000000000000000000009091041660808301526003830154600160a060020a03811660a084015260c09092019174010000000000000000000000000000000000000000900460ff169081111561043157fe5b600281111561043c57fe5b90525090508051985080604001519750806020015151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006105496108dc565b6000808451111561056257835160200290508391508082525b600054600160a060020a03161580610673575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106095780820151838201526020016105f1565b50505050905090810190601f1680156106365780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561065757600080fd5b6102c65a03f1151561066857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006106966107c4565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106fd5780820151838201526020016106e5565b50505050905090810190601f16801561072a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561074857600080fd5b6102c65a03f1151561075957600080fd5b50505060405180519392505050565b6069546101009004600160a060020a031681565b60655460009067ffffffffffffffff83161061079757600080fd5b6065805467ffffffffffffffff84169081106107af57fe5b90600052602060002090600402019050919050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561074857600080fd5b61010060405190810160405280600081526020016108ac6108dc565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b602060405190810160405260008152905600a165627a7a723058200d4e5d4c975f206a9b62cd4645a202bad964626e9f2fc28fac6b080f55677fd30029", - "sourceMap": "920:5090:12:-;;;;;;;;;-1:-1:-1;;;920:5090:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2506:37:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:98:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1905:613;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1905:613:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;113:20:22;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;2550:21:10;;;;;;;;;;;;2506:37;;;;;;:::o;1446:98:12:-;1519:7;:14;-1:-1:-1;;1519:18:12;1446:98;:::o;1905:613::-;1972:11;1993:12;2015:17;2042:22;2074:17;2101:16;2127:13;2150:23;2190:15;;:::i;:::-;2208:21;2220:8;2208:11;:21::i;:::-;2190:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2190:39:12;;;-1:-1:-1;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2190:39:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2190:39:12;-1:-1:-1;2190:39:12;2248:8;2239:17;;2274:1;:7;;;2266:15;;2311:1;:17;;;:24;2291:45;;2364:1;:17;;;2346:35;;2404:1;:12;;;2391:25;;2438:1;:11;;;2426:23;;2467:1;:7;;;2459:15;;2498:1;:13;;;2484:27;;1905:613;;;;;;;;;;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;2550:21:10:-;;;;;;-1:-1:-1;;;;;2550:21:10;;:::o;4558:161:12:-;4663:7;:14;4618:6;;4652:25;;;;4644:34;;;;;;4695:7;:17;;;;;;;;;;;;;;;;;;;;;;4688:24;;4558:161;;;:::o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;920:5090:12;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "466000", - "executionCost": "20712", - "totalCost": "486712" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "617", - "EVMSCRIPT_REGISTRY_APP_ID()": "374", - "appId()": "524", - "canPerform(address,bytes32,uint256[])": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "546", - "getPledge(uint64)": "infinite", - "kernel()": "765", - "numberOfPledges()": "467", - "vault()": "820", - "whitelistDisabled()": "448" - }, - "internal": { - "_findOrCreatePledge(uint64,uint64[] memory,uint64,uint64,uint64,address,enum LiquidPledgingStorage.PledgeState)": "infinite", - "_findPledge(uint64)": "563", - "_getDelegateIdx(struct LiquidPledgingStorage.Pledge memory,uint64)": "infinite", - "_getPledgeLevel(struct LiquidPledgingStorage.Pledge memory)": "infinite" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "getPledge(uint64)": "3f657a46", - "kernel()": "d4aae0c4", - "numberOfPledges()": "2a8ec8cc", - "vault()": "fbfa77cf", - "whitelistDisabled()": "1c8e8568" - } - }, - "userdoc": { - "methods": { - "getPledge(uint64)": { - "notice": "A getter that returns the details of the specified pledge" - }, - "numberOfPledges()": { - "notice": "/////////////////////////A constant getter that returns the total number of pledges" - } - } - } - } - }, - "./contracts/test/TestSimpleDelegatePlugin.sol": { - "TestSimpleDelegatePlugin": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "idDelegate", - "outputs": [ - { - "name": "", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - } - ], - "name": "init", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "name": "pledgeFrom", - "type": "uint64" - }, - { - "name": "pledgeTo", - "type": "uint64" - }, - { - "name": "context", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "afterTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "name": "pledgeFrom", - "type": "uint64" - }, - { - "name": "pledgeTo", - "type": "uint64" - }, - { - "name": "context", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "beforeTransfer", - "outputs": [ - { - "name": "maxAllowed", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_liquidPledging", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeFrom", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeTo", - "type": "uint64" - }, - { - "indexed": false, - "name": "context", - "type": "uint64" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "BeforeTransfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeFrom", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeTo", - "type": "uint64" - }, - { - "indexed": false, - "name": "context", - "type": "uint64" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "AfterTransfer", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029", - "sourceMap": "122:1451:13:-;;;473:237;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;564:10:13;-1:-1:-1;;;;;564:23:13;;;578:9;564:23;;;;;;556:32;;;;;;643:14;:32;;-1:-1:-1;;;;;;;;;;;643:32:13;;;;;-1:-1:-1;;;;;;;;643:32:13;;;;685:18;;;;;;;;122:1451;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029", - "sourceMap": "122:1451:13:-;;;;;;;;;-1:-1:-1;;;122:1451:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;716:262:13;;-1:-1:-1;;;716:262:13;;;;;-1:-1:-1;716:262:13;;-1:-1:-1;;716:262:13;;;1294:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;984:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:24;;;;;;:::o;716:262::-;829:11;;-1:-1:-1;;;829:11:13;;;;821:20;;;;;;;;864:14;;;;;;;;;;;:26;;;891:4;897:3;902:10;936:4;864:78;;;;;;;;-1:-1:-1;;;864:78:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:10:13;:91;;-1:-1:-1;;851:91:13;;;;;;;;;;952:19;;;;-1:-1:-1;;;;716:262:13:o;1294:276::-;1476:11;;-1:-1:-1;;;1476:11:13;;;;1475:12;1467:21;;;;;;1498:65;1512:11;1525:10;1537:8;1547:7;1556:6;1498:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1294:276;;;;;:::o;984:304::-;1157:15;1193:11;;-1:-1:-1;;;1193:11:13;;;;1192:12;1184:21;;;;;;1215:66;1230:11;1243:10;1255:8;1265:7;1274:6;1215:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;984:304;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "246600", - "executionCost": "20994", - "totalCost": "267594" - }, - "external": { - "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "2800", - "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "2870", - "idDelegate()": "451", - "init(string,string,uint64)": "infinite" - } - }, - "methodIdentifiers": { - "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "ad1483c3", - "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "d4edf5e5", - "idDelegate()": "20fe5c2a", - "init(string,string,uint64)": "7c032d5f" - } - }, - "userdoc": { - "methods": {} - } - }, - "TestSimpleDelegatePluginFactory": { - "abi": [ - { - "inputs": [ - { - "name": "liquidPledging", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "commitTime", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516107a63803806107a683398101604052808051919060200180518201919060200180518201919060200180519150600090508461004d6101da565b600160a060020a039091168152602001604051809103906000f080151561007357600080fd5b905080600160a060020a0316637c032d5f8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001846001604060020a03166001604060020a03168152602001838103835286818151815260200191508051906020019080838360005b8381101561010b5780820151838201526020016100f3565b50505050905090810190601f1680156101385780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561016e578082015183820152602001610156565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156101bc57600080fd5b6102c65a03f115156101cd57600080fd5b50505050505050506101ea565b6040516105798061022d83390190565b6035806101f86000396000f3006060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b000296060604052341561000f57600080fd5b6040516020806105798339810160405280805191505033600160a060020a039081163291909116141561004157600080fd5b6000805460e060020a60ff0219600160a060020a039093166801000000000000000002604060020a60e060020a031990911617919091167c01000000000000000000000000000000000000000000000000000000001790556104d1806100a86000396000f3006060604052600436106100485763ffffffff60e060020a60003504166320fe5c2a811461004d5780637c032d5f1461007d578063ad1483c31461011e578063d4edf5e514610153575b600080fd5b341561005857600080fd5b61006061019a565b60405167ffffffffffffffff909116815260200160405180910390f35b341561008857600080fd5b61011c60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101aa915050565b005b341561012957600080fd5b61011c67ffffffffffffffff600435811690602435811690604435811690606435166084356103a4565b341561015e57600080fd5b61018867ffffffffffffffff60043581169060243581169060443581169060643516608435610423565b60405190815260200160405180910390f35b60005467ffffffffffffffff1681565b60005460e060020a900460ff1615156101c257600080fd5b600060089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352dc7dcc8484843060006040516020015260405160e060020a63ffffffff871602815267ffffffffffffffff8316604482015273ffffffffffffffffffffffffffffffffffffffff82166064820152608060048201908152908190602481019060840187818151815260200191508051906020019080838360005b8381101561028f578082015183820152602001610277565b50505050905090810190601f1680156102bc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156102f25780820151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff92909216919091177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550505050565b60005460e060020a900460ff16156103bb57600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805460e060020a900460ff161561043b57600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a723058201d8f3ffcd1a8e80b0fa999cafaa94086b22095a4adfd05af8727b2c68a1af2690029", - "sourceMap": "1575:341:13:-;;;1623:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1794:26:13;;-1:-1:-1;1852:14:13;1823:44;;:::i;:::-;-1:-1:-1;;;;;1823:44:13;;;;;;;;;;;;;;;;;;;;;;;;1794:73;;1877:1;-1:-1:-1;;;;;1877:6:13;;1884:4;1890:3;1895:10;1877:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1877:29:13;-1:-1:-1;;;;;1877:29:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1623:290:13;;;;;1575:341;;;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600080fd00a165627a7a7230582066588944e21ee57cda0b64318032fff7ac991e8b00cbe5a171cf6d826650d3b00029", - "sourceMap": "1575:341:13:-;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "10600", - "executionCost": "infinite", - "totalCost": "infinite" - } - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "./contracts/test/TestSimpleProjectPlugin.sol": { - "TestSimpleProjectPlugin": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "liquidPledging", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "parentProject", - "type": "uint64" - } - ], - "name": "init", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "idProject", - "outputs": [ - { - "name": "", - "type": "uint64" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "name": "pledgeFrom", - "type": "uint64" - }, - { - "name": "pledgeTo", - "type": "uint64" - }, - { - "name": "context", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "afterTransfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "name": "pledgeFrom", - "type": "uint64" - }, - { - "name": "pledgeTo", - "type": "uint64" - }, - { - "name": "context", - "type": "uint64" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "beforeTransfer", - "outputs": [ - { - "name": "maxAllowed", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeFrom", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeTo", - "type": "uint64" - }, - { - "indexed": false, - "name": "context", - "type": "uint64" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "BeforeTransfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "pledgeAdmin", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeFrom", - "type": "uint64" - }, - { - "indexed": false, - "name": "pledgeTo", - "type": "uint64" - }, - { - "indexed": false, - "name": "context", - "type": "uint64" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "AfterTransfer", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029", - "sourceMap": "122:1388:14:-;;;436:157;;;;;;;;503:9;-1:-1:-1;;;;;489:23:14;:10;-1:-1:-1;;;;;489:23:14;;;481:32;;;;;;;;568:11;:18;;-1:-1:-1;;;;;;568:18:14;;;;;122:1388;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029", - "sourceMap": "122:1388:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;599:316:14;;-1:-1:-1;;;599:316:14;;;;;-1:-1:-1;599:316:14;;-1:-1:-1;;599:316:14;;;162:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:316;747:11;;;;;;;739:20;;;;;;;;781:14;:25;;;807:4;813:3;826:4;833:13;848:1;873:4;781:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:9:14;:110;;-1:-1:-1;;769:110:14;;;;;;;;;;-1:-1:-1;;889:19:14;;;-1:-1:-1;;;;;599:316:14:o;162:23::-;;;;;;:::o;1231:276::-;1413:11;;;;;;;1412:12;1404:21;;;;;;1435:65;1449:11;1462:10;1474:8;1484:7;1493:6;1435:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:276;;;;;:::o;921:304::-;1094:15;1130:11;;;;;;;1129:12;1121:21;;;;;;1152:66;1167:11;1180:10;1192:8;1202:7;1211:6;1152:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;921:304;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "258200", - "executionCost": "20770", - "totalCost": "278970" - }, - "external": { - "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "2674", - "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "2744", - "idProject()": "410", - "init(address,string,string,uint64)": "infinite" - } - }, - "methodIdentifiers": { - "afterTransfer(uint64,uint64,uint64,uint64,uint256)": "ad1483c3", - "beforeTransfer(uint64,uint64,uint64,uint64,uint256)": "d4edf5e5", - "idProject()": "94edc359", - "init(address,string,string,uint64)": "6e1c5d67" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "./contracts/test/TestSimpleProjectPluginFactory.sol": { - "TestSimpleProjectPluginFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "liquidPledging", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "url", - "type": "string" - }, - { - "name": "parentProject", - "type": "uint64" - } - ], - "name": "deploy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b61084d8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029", - "sourceMap": "168:314:15:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c5688b7c8114610045575b600080fd5b341561005057600080fd5b6100ff6004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff169250610101915050565b005b600061010b6102ac565b604051809103906000f080151561012157600080fd5b90508073ffffffffffffffffffffffffffffffffffffffff16636e1c5d67868686866040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff85166004820190815267ffffffffffffffff831660648301526080602483019081529091604481019060840186818151815260200191508051906020019080838360005b838110156101df5780820151838201526020016101c7565b50505050905090810190601f16801561020c5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b151561029157600080fd5b6102c65a03f115156102a257600080fd5b5050505050505050565b604051610565806102bd8339019056006060604052341561000f57600080fd5b32600160a060020a031633600160a060020a03161415151561003057600080fd5b60008054604060020a60ff0219166801000000000000000017905561050b8061005a6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636e1c5d67811461006657806394edc35914610122578063ad1483c314610152578063d4edf5e514610187575b600080fd5b341561007157600080fd5b6101206004803573ffffffffffffffffffffffffffffffffffffffff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505050923567ffffffffffffffff1692506101ce915050565b005b341561012d57600080fd5b6101356103c4565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015d57600080fd5b61012067ffffffffffffffff600435811690602435811690604435811690606435166084356103d4565b341561019257600080fd5b6101bc67ffffffffffffffff60043581169060243581169060443581169060643516608435610458565b60405190815260200160405180910390f35b60005468010000000000000000900460ff1615156101eb57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166372116e92848430856000306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff891602815273ffffffffffffffffffffffffffffffffffffffff808616604483015267ffffffffffffffff808616606484015284166084830152821660a482015260c060048201908152908190602481019060c40189818151815260200191508051906020019080838360005b838110156102c25780820151838201526020016102aa565b50505050905090810190601f1680156102ef5780820380516001836020036101000a031916815260200191505b50838103825288818151815260200191508051906020019080838360005b8381101561032557808201518382015260200161030d565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b151561037657600080fd5b6102c65a03f1151561038757600080fd5b50505060405180516000805467ffffffffffffffff191667ffffffffffffffff929092169190911768ff0000000000000000191690555050505050565b60005467ffffffffffffffff1681565b60005468010000000000000000900460ff16156103f057600080fd5b7fd3b94fd0ec63b2f94d5dcc25db5025576f742d1da773c386b38e308b43841bba858585858560405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a15050505050565b6000805468010000000000000000900460ff161561047557600080fd5b7fb5ecb36c4ccb2023ce7243cc977d0c33d9931336485a793d948379f39f700ea3868686868660405167ffffffffffffffff9586168152938516602085015291841660408085019190915293166060830152608082015260a001905180910390a1959450505050505600a165627a7a72305820bf1aa15de1dd1b30241e3ce9ccc1cd8ed4a0634014c73c46c964d0924d80a3cf0029a165627a7a72305820b6873dd8c9d238ea925d3f509b080d07b610882e9fb4b0643b57bb7eccb528b50029", - "sourceMap": "168:314:15:-;;;;;;;;;;;;;;;;;;;;;;;215:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:264:15;;-1:-1:-1;;;215:264:15;;;;;-1:-1:-1;215:264:15;;-1:-1:-1;;215:264:15;;;;357:25;385:29;;:::i;:::-;;;;;;;;;;;;;;;;;;357:57;;424:1;:6;;;431:14;447:4;453:3;458:13;424:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:264:15;;;;;:::o;168:314::-;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "425000", - "executionCost": "456", - "totalCost": "425456" - }, - "external": { - "deploy(address,string,string,uint64)": "infinite" - } - }, - "methodIdentifiers": { - "deploy(address,string,string,uint64)": "c5688b7c" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/acl/ACL.sol": { - "ACL": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_entity", - "type": "address" - }, - { - "name": "_app", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - } - ], - "name": "grantPermission", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CREATE_PERMISSIONS_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_entity", - "type": "address" - }, - { - "name": "_app", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "_params", - "type": "uint256[]" - } - ], - "name": "grantPermissionP", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_who", - "type": "address" - }, - { - "name": "_where", - "type": "address" - }, - { - "name": "_what", - "type": "bytes32" - } - ], - "name": "hasPermission", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "permissionParams", - "outputs": [ - { - "name": "id", - "type": "uint8" - }, - { - "name": "op", - "type": "uint8" - }, - { - "name": "value", - "type": "uint240" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_entity", - "type": "address" - }, - { - "name": "_app", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - } - ], - "name": "revokePermission", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newManager", - "type": "address" - }, - { - "name": "_app", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - } - ], - "name": "setPermissionManager", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_app", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - } - ], - "name": "getPermissionManager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_entity", - "type": "address" - }, - { - "name": "_app", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "_manager", - "type": "address" - } - ], - "name": "createPermission", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_permissionsCreator", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EMPTY_PARAM_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_who", - "type": "address" - }, - { - "name": "_where", - "type": "address" - }, - { - "name": "_what", - "type": "bytes32" - }, - { - "name": "_how", - "type": "uint256[]" - } - ], - "name": "hasPermission", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_who", - "type": "address" - }, - { - "name": "_where", - "type": "address" - }, - { - "name": "_what", - "type": "bytes32" - }, - { - "name": "_how", - "type": "bytes" - } - ], - "name": "hasPermission", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "entity", - "type": "address" - }, - { - "indexed": true, - "name": "app", - "type": "address" - }, - { - "indexed": true, - "name": "role", - "type": "bytes32" - }, - { - "indexed": false, - "name": "allowed", - "type": "bool" - } - ], - "name": "SetPermission", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "app", - "type": "address" - }, - { - "indexed": true, - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "name": "manager", - "type": "address" - } - ], - "name": "ChangePermissionManager", - "type": "event" - } - ], - "devdoc": { - "methods": { - "createPermission(address,address,bytes32,address)": { - "details": "Creates a permission that wasn't previously set. Access is limited by the ACL. If a created permission is removed it is possible to reset it with createPermission.", - "params": { - "_app": "Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)", - "_entity": "Address of the whitelisted entity that will be able to perform the role", - "_manager": "Address of the entity that will be able to grant and revoke the permission further.", - "_role": "Identifier for the group of actions in app given access to perform" - } - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "getPermissionManager(address,bytes32)": { - "details": "Get manager for permission", - "params": { - "_app": "Address of the app", - "_role": "Identifier for a group of actions in app" - }, - "return": "address of the manager for the permission" - }, - "grantPermission(address,address,bytes32)": { - "details": "Grants permission if allowed. This requires `msg.sender` to be the permission manager", - "params": { - "_app": "Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)", - "_entity": "Address of the whitelisted entity that will be able to perform the role", - "_role": "Identifier for the group of actions in app given access to perform" - } - }, - "grantPermissionP(address,address,bytes32,uint256[])": { - "details": "Grants a permission with parameters if allowed. This requires `msg.sender` to be the permission manager", - "params": { - "_app": "Address of the app in which the role will be allowed (requires app to depend on kernel for ACL)", - "_entity": "Address of the whitelisted entity that will be able to perform the role", - "_params": "Permission parameters", - "_role": "Identifier for the group of actions in app given access to perform" - } - }, - "hasPermission(address,address,bytes32,bytes)": { - "details": "Function called by apps to check ACL on kernel or to check permission statu", - "params": { - "_how": "Permission parameters", - "_where": "Identifier for a group of actions in app", - "_who": "Sender of the original call" - }, - "return": "boolean indicating whether the ACL allows the role or not" - }, - "initialize(address)": { - "details": "Initialize can only be called once. It saves the block number in which it was initialized.", - "params": { - "_permissionsCreator": "Entity that will be given permission over createPermission" - } - }, - "revokePermission(address,address,bytes32)": { - "details": "Revokes permission if allowed. This requires `msg.sender` to be the the permission manager", - "params": { - "_app": "Address of the app in which the role will be revoked", - "_entity": "Address of the whitelisted entity to revoke access from", - "_role": "Identifier for the group of actions in app being revoked" - } - }, - "setPermissionManager(address,address,bytes32)": { - "params": { - "_app": "Address of the app in which the permission management is being transferred", - "_newManager": "Address for the new manager", - "_role": "Identifier for the group of actions being transferred" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "231:13878:16:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "231:13878:16:-;;;;;;;;;-1:-1:-1;;;231:13878:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3939:165;;;;;;;;;;-1:-1:-1;;;;;3939:165:16;;;;;;;;;;;;;;281:60;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;4664:365:16;;;;;;;;;;-1:-1:-1;;;;;4664:365:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4664:365:16;;-1:-1:-1;4664:365:16;;-1:-1:-1;;;;;;4664:365:16;7973:211;;;;;;;;;;-1:-1:-1;;;;;7973:211:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;484:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;484:52:16;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;5465:256:16;;;;;;;;;;-1:-1:-1;;;;;5465:256:16;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;6045:208:16;;;;;;;;;;-1:-1:-1;;;;;6045:208:16;;;;;;;;;;;;6465:153;;;;;;;;;;-1:-1:-1;;;;;6465:153:16;;;;;;;;;;-1:-1:-1;;;;;6465:153:16;;;;;;;;;;;;;;;3190:250;;;;;;;;;;-1:-1:-1;;;;;3190:250:16;;;;;;;;;;;;;;;;;;2179:244;;;;;;;;;;-1:-1:-1;;;;;2179:244:16;;;;;1371:64;;;;;;;;;;;;86:21:22;;;;;;;;;;;;7398:569:16;;;;;;;;;;-1:-1:-1;;;;;7398:569:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7398:569:16;;-1:-1:-1;7398:569:16;;-1:-1:-1;;;;;;7398:569:16;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;6984:408:16;;;;;;;;;;-1:-1:-1;;;;;6984:408:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6984:408:16;;-1:-1:-1;6984:408:16;;-1:-1:-1;;;;;;6984:408:16;3939:165;4041:56;4058:7;4067:4;4073:5;4094:1;4080:16;;;;;;;;;;;;;;;;;;;;;;;;4041;:56::i;:::-;3939:165;;;:::o;281:60::-;339:1;281:60;:::o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;4664:365:16:-;4883:18;4785:4;4791:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:16;;;;;;1559:56;;;;;;4836:35;4850:7;4859:4;4865:5;4836:13;:35::i;:::-;4835:36;4827:45;;;;;;4921:1;4904:7;:14;:18;:60;;1432:1;1414:21;;;;;;;;;;;;;;4904:60;;;4925:20;4937:7;4925:11;:20::i;:::-;4883:81;;4974:48;4989:7;4998:4;5004:5;5011:10;4974:14;:48::i;:::-;4664:365;;;;;;;:::o;7973:211::-;8062:4;8078:22;;:::i;:::-;8117:1;8103:16;;;;;;;;;;;;;;;;;;;;;;;;8078:41;;8136;8150:4;8156:6;8164:5;8171;8136:13;:41::i;:::-;8129:48;7973:211;-1:-1:-1;;;;;7973:211:16:o;484:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;484:52:16;;;;;-1:-1:-1;484:52:16;;;-1:-1:-1;;;;;484:52:16;;:::o;113:20:22:-;;;;:::o;269:107:26:-;350:19;;269:107;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;5465:256:16:-;5567:4;5573:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:16;;;;;;1559:56;;;;;;5619:35;5633:7;5642:4;5648:5;5619:13;:35::i;:::-;5611:44;;;;;;;;5666:48;5681:7;5690:4;5696:5;5711:1;5666:14;:48::i;:::-;5465:256;;;;;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;6045:208:16:-;6155:4;6161:5;1581:33;1602:4;1608:5;1581:20;:33::i;:::-;1567:10;-1:-1:-1;;;;;1567:47:16;;;;;;1559:56;;;;;;6199:47;6221:11;6234:4;6240:5;6199:21;:47::i;6465:153::-;6545:7;6571:17;:40;6589:21;6598:4;6604:5;6589:8;:21::i;:::-;6571:40;;;;;;;;;;;-1:-1:-1;6571:40:16;;-1:-1:-1;;;;;6571:40:16;;;-1:-1:-1;;;6465:153:16:o;3190:250::-;3307:65;3321:10;3341:4;339:1;3307:13;:65::i;:::-;3299:74;;;;;;;;3384:49;3402:7;3411:4;3417:5;3424:8;3384:17;:49::i;:::-;3190:250;;;;:::o;2179:244::-;140:19:26;;:24;132:33;;;;;;2254:13:16;:11;:13::i;:::-;2307:6;;2285:10;-1:-1:-1;;;;;2285:29:16;;;2307:6;;2285:29;2277:38;;;;;;2326:90;2344:19;2365:4;339:1;2344:19;2326:17;:90::i;:::-;2179:244;:::o;1371:64::-;1432:1;1414:21;;;;;;;;;;;;;;1371:64;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;7398:569:16:-;7510:4;7526:17;7731;7546:11;:48;7558:35;7573:4;7579:6;7587:5;7558:14;:35::i;:::-;7546:48;;;;;;;;;;;;;;;-1:-1:-1;7608:23:16;;;;;:75;;;7635:48;7646:9;7657:4;7663:6;7671:5;7678:4;7635:10;:48::i;:::-;7604:117;;;7706:4;7699:11;;;;7604:117;7751:11;:54;7763:41;-1:-1:-1;;7790:6:16;7798:5;7763:14;:41::i;:::-;7751:54;;;;;;;;;;;;;;;-1:-1:-1;7819:23:16;;;;;:81;;-1:-1:-1;7846:54:16;7857:9;-1:-1:-1;;7880:6:16;7888:5;7895:4;7846:10;:54::i;:::-;7815:123;;;7923:4;7916:11;;;;7815:123;7955:5;7948:12;;7398:569;;;;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;6984:408:16:-;7092:4;7108:20;;:::i;:::-;7138:18;7173:2;7159:4;:11;:16;;;;;;;;7138:37;;7215:4;7208:11;;7262:10;7257:3;7250:6;7346:39;7360:4;7366:6;7374:5;7381:3;7346:13;:39::i;:::-;7339:46;6984:408;-1:-1:-1;;;;;;;6984:408:16:o;9014:596::-;9079:7;9098:17;9153:22;9286:9;9351:20;9409:18;;:::i;:::-;9128:14;9118:25;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;9178:27:16;;;;:16;:27;;;;;9220:13;;3:109:-1;;-1:-1;9178:27:16;-1:-1:-1;9220:18:16;9216:361;;;9298:1;9286:13;;9281:286;9305:14;:21;9301:1;:25;9281:286;;;9374:14;9389:1;9374:17;;;;;;;;;;;;;;;;9351:40;;9430:86;;;;;;;;;9436:27;9450:12;9436:13;:27::i;:::-;9430:86;;;;;;9465:27;9479:12;9465:13;:27::i;:::-;9430:86;;;;-1:-1:-1;;;;;9430:86:16;;;;;;;9534:18;;9409:107;;-1:-1:-1;9534:18:16;;-1:-1:-1;9534:18:16;;;;;;:::i;:::-;;;;;;;;;9546:5;;9534:18;9546:5;9534:18;;;-1:-1:-1;;9534:18:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9534:18:16;;;;;;;;;;;;-1:-1:-1;;;;;9534:18:16;;;;;;;;;;;;;-1:-1:-1;;;9328:3:16;;;;;9281:286;;;-1:-1:-1;9594:9:16;;9014:596;-1:-1:-1;;;;;9014:596:16:o;8755:253::-;8917:11;8865;:49;8877:36;8892:7;8901:4;8907:5;8877:14;:36::i;:::-;8865:49;;;;;;;;;;;;;-1:-1:-1;8865:49:16;:63;;;;8968:5;;-1:-1:-1;;;;;8939:62:16;;;;;;;;;;8975:25;;;;8939:62;;;;;;;;;;;;;;;8755:253;;;;:::o;13350:220::-;13493:11;13450:17;:40;13468:21;13477:4;13483:5;13468:8;:21::i;:::-;13450:40;;;;;;;;;;;;;-1:-1:-1;13450:40:16;:54;;-1:-1:-1;;13450:54:16;-1:-1:-1;;;;;13450:54:16;;;;;;13514:49;;;;13544:5;;13514:49;;;;;;;;;;;;;;13350:220;;;:::o;13576:141::-;13648:7;13692:1;13696:6;13704:5;13674:36;;;;;-1:-1:-1;;;;;13674:36:16;;;;;;;;;;;;;;;;;;;;;;;13667:43;;13576:141;;;;:::o;8290:376::-;8537:1;8492:33;8513:4;8519:5;8492:20;:33::i;:::-;-1:-1:-1;;;;;8492:47:16;;8484:56;;;;;;8551:54;8566:7;8575:4;8581:5;1432:1;1414:21;;;;;;;;;;;;;;8551:14;:54::i;:::-;8615:44;8637:8;8647:4;8653:5;8615:21;:44::i;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;13723:167:16:-;13815:7;13859:1;13863:4;13869:6;13877:5;13841:42;;;;;;-1:-1:-1;;;;;13841:42:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13834:49;;13723:167;;;;;;:::o;9616:340::-;9787:4;1432:1;1414:21;;;;;;;;;;;;;;;9811:31;;9807:73;;;-1:-1:-1;9865:4:16;9858:11;;9807:73;9897:52;9907:11;9920:1;9923:4;9929:6;9937:5;9944:4;9897:9;:52::i;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;2426:112:17:-;2516:14;;;;2426:112::o;2308:::-;2398:14;;;;2308:112::o;767:94:26:-;842:12;767:94;:::o;9962:1478:16:-;10157:4;10295:18;;:::i;:::-;10499:13;10193:29;;;:16;:29;;;;;:36;10499:13;;10181:48;;;;10177:108;;10252:5;10245:12;;;;10177:108;10316:29;;;;:16;:29;;;;;:39;;;;;;;;;;;;;;;;;;;;10295:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10295:60:16;;;;;;;;;-1:-1:-1;1268:3:16;10295:60;10370:8;:29;;;10366:123;;;10422:56;10432:5;10439:11;10452:4;10458:6;10466:5;10473:4;10422:9;:56::i;:::-;10415:63;;;;10366:123;10551:5;:11;;;-1:-1:-1;;;;;10543:20:16;;-1:-1:-1;1220:3:16;10599:5;:8;:27;;;10595:693;;;10660:5;:11;;;-1:-1:-1;;;;;10650:33:16;;10684:4;10690:6;10698:5;10650:54;;;;;;;;-1:-1:-1;;;10650:54:16;;;;;;-1:-1:-1;;;;;10650:54:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:62;;10711:1;10650:62;;;10707:1;10650:62;10642:70;;;;10739:1;10726:14;;10595:693;;;1076:3;10761:5;:8;:33;;;10757:531;;;10818:8;:6;:8::i;:::-;10810:16;;10757:531;;;1124:3;10847:5;:8;:30;;;10843:445;;;10901:6;:4;:6::i;:::-;10893:14;;;;10843:445;;;1172:3;10928:5;:8;:27;;;10924:364;;;10987:10;-1:-1:-1;;;;;10979:19:16;;-1:-1:-1;10924:364:16;;;1316:3;11019:5;:8;:32;;;11015:273;;;11083:5;:11;;;-1:-1:-1;;;;;11075:20:16;;-1:-1:-1;11015:273:16;;;11142:4;:11;11130:5;:8;:23;;;11126:74;;11180:5;11173:12;;;;11126:74;11237:4;11242:5;:8;11237:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11221:32:16;;-1:-1:-1;11015:273:16;11318:6;11305:5;:8;;;11302:12;;;;;;;;;;:22;;;;;;;;;11298:78;;;11364:1;11355:5;11347:18;11340:25;;;;11298:78;11393:40;11401:5;11411;:8;;;11408:12;;;;;;;;;;11422:10;11393:7;:40::i;:::-;11386:47;;9962:1478;;;;;;;;;;;;:::o;11446:1102::-;11584:4;;;;;;;;;11621:10;11607:6;:9;;;11604:13;;;;;;;;;;:27;;;;;;;;;11600:320;;;11683:39;11708:6;:12;;;-1:-1:-1;;;;;11700:21:16;11683:16;:39::i;:::-;11647:75;;;;;;11750:60;11760:11;11773:9;11784:4;11790:6;11798:5;11805:4;11750:9;:60::i;:::-;11736:74;;11832:77;11842:11;11855:6;:26;;11874:7;11855:26;;;11864:7;11855:26;11883:4;11889:6;11897:5;11904:4;11832:9;:77::i;:::-;11825:84;;;;11600:320;11946:39;11971:6;:12;;;-1:-1:-1;;;;;11963:21:16;11946:16;:39::i;:::-;11930:55;;;;;12005:53;12015:11;12028:2;12032:4;12038:6;12046:5;12053:4;12005:9;:53::i;:::-;11995:63;-1:-1:-1;12090:6:16;12076;:9;;;12073:13;;;;;;;;;;:23;;;;;;;;;12069:64;;;12120:2;12119:3;12112:10;;;;12069:64;12147:2;:28;;;;-1:-1:-1;12170:5:16;12156:6;:9;;;12153:13;;;;;;;;;;:22;;;;;;;;;12147:28;12143:70;;;12198:4;12191:11;;;;12143:70;12228:2;12227:3;:30;;;;-1:-1:-1;12251:6:16;12237;:9;;;12234:13;;;;;;;;;;:23;;;;;;;;;12227:30;12223:73;;;12280:5;12273:12;;;;12223:73;12316:53;12326:11;12339:2;12343:4;12349:6;12357:5;12364:4;12316:9;:53::i;:::-;12306:63;-1:-1:-1;12401:6:16;12387;:9;;;12384:13;;;;;;;;;;:23;;;;;;;;;12380:87;;;12431:2;:9;;;;;12438:2;12437:3;12431:9;12430:26;;;;12447:2;12446:3;:9;;;;;12453:2;12423:33;;;;12380:87;12484:2;12477:9;;11446:1102;;;;;;;;;;;;;;;;;:::o;13896:82::-;13959:15;13896:82;:::o;12554:725::-;12626:4;12653:5;12646:3;:12;;;;;;;;;12642:34;;;-1:-1:-1;12668:8:16;;;12661:15;;12642:34;12756:6;12749:3;:13;;;;;;;;;12745:34;;;-1:-1:-1;12771:8:16;;;;12764:15;;12745:34;12859:5;12852:3;:12;;;;;;;;;12848:33;;;-1:-1:-1;12874:7:16;;;12867:14;;12848:33;12962:5;12955:3;:12;;;;;;;;;12951:33;;;-1:-1:-1;12977:7:16;;;12970:14;;12951:33;13065:6;13058:3;:13;;;;;;;;;13054:34;;;-1:-1:-1;13080:8:16;;;;13073:15;;13054:34;13168:6;13161:3;:13;;;;;;;;;13157:34;;;-1:-1:-1;13183:8:16;;;;13176:15;;13157:34;-1:-1:-1;13267:5:16;12554:725;;;;;:::o;2544:192:17:-;2656:2;2680:13;;;;2715;;;;2544:192::o;231:13878:16:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "1115000", - "executionCost": "1155", - "totalCost": "1116155" - }, - "external": { - "CREATE_PERMISSIONS_ROLE()": "258", - "EMPTY_PARAM_HASH()": "641", - "EVMSCRIPT_REGISTRY_APP()": "661", - "EVMSCRIPT_REGISTRY_APP_ID()": "352", - "appId()": "568", - "canPerform(address,bytes32,uint256[])": "infinite", - "createPermission(address,address,bytes32,address)": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "591", - "getPermissionManager(address,bytes32)": "1302", - "grantPermission(address,address,bytes32)": "infinite", - "grantPermissionP(address,address,bytes32,uint256[])": "infinite", - "hasPermission(address,address,bytes32)": "infinite", - "hasPermission(address,address,bytes32,bytes)": "infinite", - "hasPermission(address,address,bytes32,uint256[])": "infinite", - "initialize(address)": "infinite", - "kernel()": "944", - "permissionParams(bytes32,uint256)": "1185", - "revokePermission(address,address,bytes32)": "infinite", - "setPermissionManager(address,address,bytes32)": "infinite" - }, - "internal": { - "_createPermission(address,address,bytes32,address)": "infinite", - "_saveParams(uint256[] memory)": "infinite", - "_setPermission(address,address,bytes32,bytes32)": "infinite", - "_setPermissionManager(address,address,bytes32)": "infinite", - "blockN()": "infinite", - "compare(uint256,enum ACL.Op,uint256)": "361", - "evalLogic(struct ACL.Param memory,bytes32,address,address,bytes32,uint256[] memory)": "infinite", - "evalParam(bytes32,uint32,address,address,bytes32,uint256[] memory)": "infinite", - "evalParams(bytes32,address,address,bytes32,uint256[] memory)": "infinite", - "permissionHash(address,address,bytes32)": "infinite", - "roleHash(address,bytes32)": "infinite", - "time()": "14" - } - }, - "methodIdentifiers": { - "CREATE_PERMISSIONS_ROLE()": "3d6ab68f", - "EMPTY_PARAM_HASH()": "c513f66e", - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "createPermission(address,address,bytes32,address)": "be038478", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "getPermissionManager(address,bytes32)": "b1905727", - "grantPermission(address,address,bytes32)": "0a8ed3db", - "grantPermissionP(address,address,bytes32,uint256[])": "6815c992", - "hasPermission(address,address,bytes32)": "6d6712d8", - "hasPermission(address,address,bytes32,bytes)": "fdef9106", - "hasPermission(address,address,bytes32,uint256[])": "f520b58d", - "initialize(address)": "c4d66de8", - "kernel()": "d4aae0c4", - "permissionParams(bytes32,uint256)": "710a8315", - "revokePermission(address,address,bytes32)": "9d0effdb", - "setPermissionManager(address,address,bytes32)": "afd925df" - } - }, - "userdoc": { - "methods": { - "createPermission(address,address,bytes32,address)": { - "notice": "Create a new permission granting `_entity` the ability to perform actions of role `_role` on `_app` (setting `_manager` as the permission manager)" - }, - "grantPermission(address,address,bytes32)": { - "notice": "Grants `_entity` the ability to perform actions of role `_role` on `_app`" - }, - "grantPermissionP(address,address,bytes32,uint256[])": { - "notice": "Grants `_entity` the ability to perform actions of role `_role` on `_app`" - }, - "initialize(address)": { - "notice": "Initializes an ACL instance and sets `_permissionsCreator` as the entity that can create other permissions" - }, - "revokePermission(address,address,bytes32)": { - "notice": "Revokes `_entity` the ability to perform actions of role `_role` on `_app`" - }, - "setPermissionManager(address,address,bytes32)": { - "notice": "Sets `_newManager` as the manager of the permission `_role` in `_app`" - } - } - } - }, - "ACLOracle": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "who", - "type": "address" - }, - { - "name": "where", - "type": "address" - }, - { - "name": "what", - "type": "bytes32" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "canPerform(address,address,bytes32)": "1a2b6250" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { - "ACLHelpers": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029", - "sourceMap": "2282:456:17:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600080fd00a165627a7a72305820d80800acb0ff6d5b4f8a459d711d73b78d39644560090b4540a7e2dee4bfc9920029", - "sourceMap": "2282:456:17:-;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "10600", - "executionCost": "61", - "totalCost": "10661" - }, - "internal": { - "decodeParamId(uint256)": "infinite", - "decodeParamOp(uint256)": "infinite", - "decodeParamsList(uint256)": "infinite" - } - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - }, - "ACLSyntaxSugar": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029", - "sourceMap": "26:2253:17:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600080fd00a165627a7a7230582060e615b52107384b8776abb03f853c9b7cb52237a0214d7f01e8f210b9a418bd0029", - "sourceMap": "26:2253:17:-;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "10600", - "executionCost": "61", - "totalCost": "10661" - }, - "internal": { - "arr()": "infinite", - "arr(address)": "infinite", - "arr(address,address)": "infinite", - "arr(address,address,address)": "infinite", - "arr(address,address,uint256)": "infinite", - "arr(address,address,uint256,uint256,uint256)": "infinite", - "arr(address,uint256)": "infinite", - "arr(address,uint256,uint256)": "infinite", - "arr(bytes32)": "infinite", - "arr(bytes32,bytes32)": "infinite", - "arr(uint256)": "infinite", - "arr(uint256,uint256)": "infinite", - "arr(uint256,uint256,uint256)": "infinite", - "arr(uint256,uint256,uint256,uint256)": "infinite", - "arr(uint256,uint256,uint256,uint256,uint256)": "infinite" - } - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/acl/IACL.sol": { - "IACL": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "permissionsCreator", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "who", - "type": "address" - }, - { - "name": "where", - "type": "address" - }, - { - "name": "what", - "type": "bytes32" - }, - { - "name": "how", - "type": "bytes" - } - ], - "name": "hasPermission", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "hasPermission(address,address,bytes32,bytes)": "fdef9106", - "initialize(address)": "c4d66de8" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/apps/AppProxyBase.sol": { - "AppProxyBase": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isUpgradeable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCode", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "appId()": "80afdea8", - "getCode()": "ea879634", - "isUpgradeable()": "daa3a163", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/apps/AppProxyPinned.sol": { - "AppProxyPinned": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isUpgradeable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCode", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029", - "sourceMap": "56:837:20:-;;;385:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:19;576:16;;-1:-1:-1;;;;;;576:16:19;-1:-1:-1;;;;;576:16:19;;;;;-1:-1:-1;602:14:19;;;385:247:20;;;576:16:19;;-1:-1:-1;602:14:19;;385:247:20;;918:17:19;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:19;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:19;;;;;;;;478:847;;;;565:17:20;576:5;;565:10;;;;;:17;;;:::i;:::-;552:10;:30;;-1:-1:-1;;;;;;552:30:20;-1:-1:-1;;;;;552:30:20;;;;;;;;600:10;:24;;592:33;;;;;;385:247;;;56:837;;1331:145:19;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:19;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o;56:837:20:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e180029", - "sourceMap": "56:837:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:33;864:9;:7;:9::i;:::-;875:8;;851:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;851:12:20;;-1:-1:-1;;;;;851:33:20:i;:::-;56:837;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;113:20:22;;;;;;;;;;;;492:75:41;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:81:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:41;;;;;;;;;;;;638:83:20;;;;;;;;;;;704:10;;;;638:83;:::o;311:628:25:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:22:-;;;;:::o;492:75:41:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:22:-;;;;;;:::o;727:81:20:-;773:4;727:81;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o;1331:145:19:-;1390:7;1416:6;;;;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "287200", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "": "infinite", - "ACL_APP()": "infinite", - "ACL_APP_ID()": "infinite", - "APP_ADDR_NAMESPACE()": "infinite", - "APP_BASES_NAMESPACE()": "infinite", - "CORE_NAMESPACE()": "infinite", - "KERNEL_APP()": "infinite", - "KERNEL_APP_ID()": "infinite", - "appId()": "infinite", - "getCode()": "infinite", - "isUpgradeable()": "infinite", - "kernel()": "infinite" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "appId()": "80afdea8", - "getCode()": "ea879634", - "isUpgradeable()": "daa3a163", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { - "AppProxyUpgradeable": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "pinnedCode", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isUpgradeable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCode", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029", - "sourceMap": "56:722:21:-;;;424:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:15:19;576:16;;-1:-1:-1;;;;;;576:16:19;-1:-1:-1;;;;;576:16:19;;;;;-1:-1:-1;602:14:19;;;424:170:21;;;576:16:19;;-1:-1:-1;602:14:19;;424:170:21;;918:17:19;602:14;918:10;;;;;;:17;:::i;:::-;900:35;;1044:1;1016:18;:25;:29;1012:307;;;1069:19;1080:7;1069:10;;;;;;:19;:::i;:::-;1061:28;;;;;;;;1267:7;-1:-1:-1;;;;;1267:20:19;1288:18;1267:40;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1259:49:19;;;;;;;;478:847;;;;424:170:21;;;56:722;;1331:145:19;1390:7;1416:6;;-1:-1:-1;;;;;1416:6:19;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o;56:722:21:-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029", - "sourceMap": "56:722:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1519:14:19;1536:9;:7;:9::i;:::-;1519:26;-1:-1:-1;1563:11:19;;;;;1555:20;;;;;;1632:30;1645:6;1653:8;;1632:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1632:12:19;;-1:-1:-1;;;;;1632:30:19:i;:::-;1482:187;56:722:21;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;107:25:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58:41;;;;;;;;;;;;113:20:22;;;;;;;;;;;;492:75:41;;;;;;;;;;;;420:66;;;;;;;;;;;;86:21:22;;;;;;;;;;;;696:80:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:63:41;;;;;;;;;;;;600:90:21;;;;;;;;;;;640:7;666:17;677:5;;666:10;:17::i;:::-;659:24;;600:90;:::o;311:628:25:-;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;107:25:21:-;;;;;;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:22:-;;;;:::o;492:75:41:-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;86:21:22:-;;;;;;:::o;696:80:21:-;765:4;696:80;:::o;121:63:41:-;167:17;;;;;;;;;;;;;;121:63;:::o;1331:145:19:-;1390:7;1416:6;;;;:13;167:17:41;;;;;;;;;;;;;;1461:6:19;1430:38;;;;;;;;;;;;;;;;;;;;1416:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:145;-1:-1:-1;;;1331:145:19:o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "304800", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "": "infinite", - "ACL_APP()": "infinite", - "ACL_APP_ID()": "infinite", - "APP_ADDR_NAMESPACE()": "infinite", - "APP_BASES_NAMESPACE()": "infinite", - "CORE_NAMESPACE()": "infinite", - "KERNEL_APP()": "infinite", - "KERNEL_APP_ID()": "infinite", - "appId()": "infinite", - "getCode()": "infinite", - "isUpgradeable()": "infinite", - "kernel()": "infinite", - "pinnedCode()": "infinite" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "appId()": "80afdea8", - "getCode()": "ea879634", - "isUpgradeable()": "daa3a163", - "kernel()": "d4aae0c4", - "pinnedCode()": "3bc7ebac" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/apps/AppStorage.sol": { - "AppStorage": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b60f68061001d6000396000f30060606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029", - "sourceMap": "60:317:22:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114604d578063d4aae0c414606f575b600080fd5b3415605757600080fd5b605d60a8565b60405190815260200160405180910390f35b3415607957600080fd5b607f60ae565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582098c96720e68692f53d4ae253d0df419ec188a713882f6d4b396f47905ba131970029", - "sourceMap": "60:317:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;86:21::-;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "49200", - "executionCost": "94", - "totalCost": "49294" - }, - "external": { - "appId()": "373", - "kernel()": "410" - } - }, - "methodIdentifiers": { - "appId()": "80afdea8", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/apps/AragonApp.sol": { - "AragonApp": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6105b28061001e6000396000f3006060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029", - "sourceMap": "172:830:23:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100695763ffffffff60e060020a60003504166360b1e057811461006e57806380afdea8146100935780638b3dd749146100a65780639b3fdf4c146100b9578063a1658fad146100cc578063d4aae0c414610143578063f92a79ff14610172575b600080fd5b341561007957600080fd5b6100816101c3565b60405190815260200160405180910390f35b341561009e57600080fd5b6100816101f7565b34156100b157600080fd5b6100816101fd565b34156100c457600080fd5b610081610203565b34156100d757600080fd5b61012f60048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061027f95505050505050565b604051901515815260200160405180910390f35b341561014e57600080fd5b6101566103bd565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b61015660046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506103cc95505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b60035490565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6000610289610574565b600080845111156102a257835160200290508391508082525b600054600160a060020a031615806103b3575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b83811015610349578082015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561039757600080fd5b6102c65a03f115156103a857600080fd5b505050604051805190505b9695505050505050565b600054600160a060020a031681565b60006103d66104a8565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561043d578082015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561048857600080fd5b6102c65a03f1151561049957600080fd5b50505060405180519392505050565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561048857600080fd5b602060405190810160405260008152905600a165627a7a72305820b21859fce2e1261146b28fb6136aee5e120cdd38040d7e4cbdef9f8d0f8191440029", - "sourceMap": "172:830:23:-;;;;;;;;;-1:-1:-1;;;172:830:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;;;;;;;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;86:21:22;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;269:107:26:-;350:19;;269:107;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;1021:200::-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;172:830:23;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "291600", - "executionCost": "326", - "totalCost": "291926" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "551", - "EVMSCRIPT_REGISTRY_APP_ID()": "308", - "appId()": "458", - "canPerform(address,bytes32,uint256[])": "infinite", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "480", - "kernel()": "699" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/apps/IAppProxy.sol": { - "IAppProxy": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "isUpgradeable", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCode", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "getCode()": "ea879634", - "isUpgradeable()": "daa3a163" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/common/DelegateProxy.sol": { - "DelegateProxy": { - "abi": [], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029", - "sourceMap": "26:1091:25:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600080fd00a165627a7a72305820fa94648986548b2c4c68e6ca222cdcf4342e8e7a4ba3400744bdeff7cd15b0ed0029", - "sourceMap": "26:1091:25:-;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "10600", - "executionCost": "61", - "totalCost": "10661" - }, - "internal": { - "delegatedFwd(address,bytes memory)": "infinite", - "isContract(address)": "infinite" - } - }, - "methodIdentifiers": {} - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/common/Initializable.sol": { - "Initializable": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6101168061001e6000396000f30060606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029", - "sourceMap": "61:802:26:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea8811460575780638b3dd749146079578063d4aae0c4146089575b600080fd5b3415606157600080fd5b606760c2565b60405190815260200160405180910390f35b3415608357600080fd5b606760c8565b3415609357600080fd5b609960ce565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60015481565b60035490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820beda3c4bd32e8698bb1fe210ec93ece6a7b34cd70d72bce5a00e05e77fa6d3850029", - "sourceMap": "61:802:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;269:107:26;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20;;;;:::o;269:107:26:-;350:19;;269:107;:::o;86:21:22:-;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "55600", - "executionCost": "100", - "totalCost": "55700" - }, - "external": { - "appId()": "373", - "getInitializationBlock()": "395", - "kernel()": "432" - }, - "internal": { - "getBlockNumber()": "infinite", - "initialized()": "infinite" - } - }, - "methodIdentifiers": { - "appId()": "80afdea8", - "getInitializationBlock()": "8b3dd749", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { - "EVMScriptRegistry": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getScriptExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_executorId", - "type": "uint256" - } - ], - "name": "disableScriptExecutor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_executor", - "type": "address" - } - ], - "name": "addScriptExecutor", - "outputs": [ - { - "name": "id", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_role", - "type": "bytes32" - }, - { - "name": "params", - "type": "uint256[]" - } - ], - "name": "canPerform", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "REGISTRY_MANAGER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "executors", - "outputs": [ - { - "name": "executor", - "type": "address" - }, - { - "name": "enabled", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029", - "sourceMap": "160:1236:27:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a994941766558510820029", - "sourceMap": "160:1236:27:-;;;;;;;;;-1:-1:-1;;;160:1236:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:326:27;;-1:-1:-1;1068:326:27;;-1:-1:-1;;;;;;1068:326:27;;;;-1:-1:-1;;;;;1068:326:27;;;;;;;;;;;;;;;918:144;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;551:184:27;;;;;;;;;;;;741:171;;;;;;;;;;-1:-1:-1;;;;;741:171:27;;;;;269:107:26;;;;;;;;;;;;158:103:30;;;;;;;;;;;;506:494:23;;;;;;;;;;;;;-1:-1:-1;;;;;506:494:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:494:23;;-1:-1:-1;506:494:23;;-1:-1:-1;;;;;;506:494:23;;;;;;;;;;;;;;;;;;365:58:27;;;;;;;;;;;;86:21:22;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;512:32:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:27;;;;;;;;;;;;;;;;;;;;;;;1068:326;1131:7;1150:10;1284:27;1163:19;:7;:17;:19::i;:::-;1150:32;;;-1:-1:-1;1197:7:27;;;:33;;-1:-1:-1;1214:9:27;:16;1208:22;;;1197:33;1193:81;;;1261:1;1246:17;;;;1193:81;1314:9;:13;;1324:2;;1314:13;;;;;;;;;;;;;;;1344;;1314;;-1:-1:-1;;;;1344:13:27;;;;:43;;1385:1;1344:43;;;1360:14;;-1:-1:-1;;;;;1360:14:27;1344:43;1337:50;;1068:326;;;;;;:::o;918:144::-;421:1;306:47:23;317:10;421:1:27;350::23;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1050:5:27;1017:9;1027:11;1017:22;;;;;;;;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;1017:38:27;-1:-1:-1;;1017:38:27;;;;;;;;;-1:-1:-1;;918:144:27:o;68:84:30:-;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;551:184:27:-;140:19:26;;:24;132:33;;;;;;599:13:27;:11;:13::i;:::-;680:9;:48;;;;;;:9;:48;;:::i;:::-;;;;;;;;;;695:32;;;;;;;;717:1;695:32;;;;;;;;680:48;-1:-1:-1;695:32:27;680:48;;;-1:-1:-1;;680:48:27;-1:-1:-1;;;;;680:48:27;;;;;;;;;;;;;;;;-1:-1:-1;;;680:48:27;-1:-1:-1;;680:48:27;;;;;;-1:-1:-1;;551:184:27:o;741:171::-;833:7;421:1;306:47:23;317:10;421:1:27;833:7;336:16:23;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;859:9:27;:46;;;;;;:9;:46;;:::i;:::-;;;;;;;;;;874:30;;;;;;;;-1:-1:-1;;;;;874:30:27;;;;-1:-1:-1;874:30:27;;;;;;-1:-1:-1;874:30:27;859:46;;;-1:-1:-1;;859:46:27;-1:-1:-1;;;;;859:46:27;;;;;;;;;;;;;;;;-1:-1:-1;;;859:46:27;-1:-1:-1;;859:46:27;;;;;;-1:-1:-1;852:53:27;;-1:-1:-1;;;741:171:27:o;269:107:26:-;350:19;;269:107;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:23:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;743:6;:13;759:2;743:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;921:6;;-1:-1:-1;;;;;921:6:23;913:20;;:80;;-1:-1:-1;937:6:23;;;-1:-1:-1;;;;;937:6:23;;:20;;958:7;;975:4;;982:5;;989:3;;937:56;;;;;;;-1:-1:-1;;;937:56:23;;;;;;-1:-1:-1;;;;;937:56:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:23;906:87;506:494;-1:-1:-1;;;;;;506:494:23:o;365:58:27:-;421:1;365:58;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;-1:-1:-1;;;;;937:39:28;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;512:32:27:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;512:32:27;;;-1:-1:-1;;;;512:32:27;;;;;:::o;2452:109:31:-;2509:6;2534:20;2543:7;2552:1;2534:8;:20::i;:::-;2527:27;2452:109;-1:-1:-1;;2452:109:31:o;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;1021:200:28:-;1075:18;1128:6;;1075:18;;-1:-1:-1;;;;;1128:6:28;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1128:37:28;;-1:-1:-1;;1021:200:28;;;:::o;3092:355:31:-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;-1:-1:-1;;;3290:66:31;3280:3;;;;3276;;;-1:-1:-1;;;;3252:189:31:o;767:94:26:-;842:12;767:94;:::o;2567:188:31:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:31:o;160:1236:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;160:1236:27;;;-1:-1:-1;160:1236:27;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "540400", - "executionCost": "570", - "totalCost": "540970" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "639", - "EVMSCRIPT_REGISTRY_APP_ID()": "352", - "REGISTRY_MANAGER_ROLE()": "434", - "addScriptExecutor(address)": "infinite", - "appId()": "502", - "canPerform(address,bytes32,uint256[])": "infinite", - "disableScriptExecutor(uint256)": "infinite", - "executors(uint256)": "1266", - "getExecutor(bytes)": "infinite", - "getInitializationBlock()": "569", - "getScriptExecutor(bytes)": "infinite", - "initialize()": "infinite", - "kernel()": "812" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "REGISTRY_MANAGER_ROLE()": "bd8fde1c", - "addScriptExecutor(address)": "87a16f12", - "appId()": "80afdea8", - "canPerform(address,bytes32,uint256[])": "a1658fad", - "disableScriptExecutor(uint256)": "5ca4d4bb", - "executors(uint256)": "f97a05df", - "getExecutor(bytes)": "f92a79ff", - "getInitializationBlock()": "8b3dd749", - "getScriptExecutor(bytes)": "04bf2a7f", - "initialize()": "8129fc1c", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { - "EVMScriptRunner": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_script", - "type": "bytes" - } - ], - "name": "getExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6103f08061001e6000396000f3006060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029", - "sourceMap": "162:1806:28:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100535763ffffffff60e060020a60003504166360b1e057811461005857806380afdea81461007d5780639b3fdf4c14610090578063d4aae0c4146100a3578063f92a79ff146100df575b600080fd5b341561006357600080fd5b61006b610130565b60405190815260200160405180910390f35b341561008857600080fd5b61006b610164565b341561009b57600080fd5b61006b61016a565b34156100ae57600080fd5b6100b66101e6565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100ea57600080fd5b6100b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061020295505050505050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061020c6102eb565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15156102cb57600080fd5b6102c65a03f115156102dc57600080fd5b50505060405180519392505050565b60008054819073ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156102cb57600080fd00a165627a7a72305820fd11cd20e57a349bb3adcc4cb9f4573292e3423ba4f7cb0fb5a2aa8e9cc3272d0029", - "sourceMap": "162:1806:28:-;;;;;;;;;-1:-1:-1;;;162:1806:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:22;;;;;;;;;;;;158:103:30;;;;;;;;;;;;86:21:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:169:28;;-1:-1:-1;824:169:28;;-1:-1:-1;;;;;;824:169:28;68:84:30;120:32;;;;;;;;;;;;;;68:84;:::o;113:20:22:-;;;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;86:21:22:-;;;;;;:::o;824:169:28:-;881:18;937:21;:19;:21::i;:::-;:39;;;977:7;937:48;;;;;;;;;;;-1:-1:-1;;;937:48:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:28;-1:-1:-1;;;824:169:28:o;1021:200::-;1075:18;1128:6;;1075:18;;1128:6;;:13;217:16:30;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;1128:37:28;;;;;;;;-1:-1:-1;;;1128:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "201600", - "executionCost": "240", - "totalCost": "201840" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "529", - "EVMSCRIPT_REGISTRY_APP_ID()": "308", - "appId()": "458", - "getExecutor(bytes)": "infinite", - "kernel()": "517" - }, - "internal": { - "getExecutorRegistry()": "infinite", - "returnedDataDecoded()": "infinite", - "runScript(bytes memory,bytes memory,address[] memory)": "infinite" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "appId()": "80afdea8", - "getExecutor(bytes)": "f92a79ff", - "kernel()": "d4aae0c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { - "IEVMScriptExecutor": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "script", - "type": "bytes" - }, - { - "name": "input", - "type": "bytes" - }, - { - "name": "blacklist", - "type": "address[]" - } - ], - "name": "execScript", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "execScript(bytes,bytes,address[])": "279cea35" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { - "EVMScriptRegistryConstants": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6101648061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029", - "sourceMap": "26:238:30:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166360b1e05781146100505780639b3fdf4c14610075575b600080fd5b341561005b57600080fd5b610063610088565b60405190815260200160405180910390f35b341561008057600080fd5b6100636100bc565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020815600a165627a7a7230582021e63987a96f9d13ef3f54e8b7d7d046c77a931285a0179816c923fd45dfc0110029", - "sourceMap": "26:238:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103;;;;;;;;;;;;68:84;120:32;;;;;;;;;;;;;;68:84;:::o;158:103::-;217:16;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "71200", - "executionCost": "118", - "totalCost": "71318" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "444", - "EVMSCRIPT_REGISTRY_APP_ID()": "245" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057" - } - }, - "userdoc": { - "methods": {} - } - }, - "IEVMScriptRegistry": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "script", - "type": "bytes" - } - ], - "name": "getScriptExecutor", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "executorId", - "type": "uint256" - } - ], - "name": "disableScriptExecutor", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "executor", - "type": "address" - } - ], - "name": "addScriptExecutor", - "outputs": [ - { - "name": "id", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "addScriptExecutor(address)": "87a16f12", - "disableScriptExecutor(uint256)": "5ca4d4bb", - "getScriptExecutor(bytes)": "04bf2a7f" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { - "ScriptHelpers": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_dest", - "type": "uint256" - }, - { - "name": "_src", - "type": "uint256" - }, - { - "name": "_len", - "type": "uint256" - } - ], - "name": "memcpy", - "outputs": [], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_a", - "type": "bytes" - }, - { - "name": "_b", - "type": "bytes" - }, - { - "name": "_c", - "type": "address[]" - } - ], - "name": "abiEncode", - "outputs": [ - { - "name": "d", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6103718061001e6000396000f30060606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029", - "sourceMap": "26:4554:31:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166311fe773d8114610050578063137d702614610063575b600080fd5b6100616004356024356044356101a2565b005b61012b60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506101ec95505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016757808201518382015260200161014f565b50505050905090810190601f1680156101945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b81838260005b602082106101ca578351835260209384019390920191601f19909101906101a8565b6001826020036101000a03905080198451168184511617909252505050505050565b6101f4610333565b6101ff848484610207565b949350505050565b61020f610333565b60606000808061021e886102c9565b6020028401925061022e876102c9565b6020028301915061023e86610304565b60200282019050806040518059106102535750595b818152601f19601f830116810160200160405290509450836020860152826040860152816060860152610291856102898a610311565b868b51610314565b6102a68561029e89610311565b858a51610314565b6102be856102b388610311565b848951602002610314565b505050509392505050565b600080602083518115156102d957fe5b06116102e65760006102e9565b60015b60ff16602083518115156102f957fe5b040160010192915050565b6000815160010192915050565b90565b6000826020860101905061032c8185846020016101a2565b5050505050565b602060405190810160405260008152905600a165627a7a7230582054a248fd48c50998bbbebebac97db462911b4b7e7ecb1d66118f6cfda43e837d0029", - "sourceMap": "26:4554:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638;;;;;;;;;;;;597:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;597:125:31;;-1:-1:-1;597:125:31;;-1:-1:-1;;;;;;597:125:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:638:31;4026:4;4055:5;4084:4;4012:11;4149:165;4163:2;4156:9;;4149:165;;4238:3;4232:5;4219:6;;4278:2;4294:9;;;;4270:10;;;;-1:-1:-1;;4167:9:31;;;;4149:165;;;4388:1;4381:3;4376:2;:8;4368:3;:17;:21;4356:33;;4457:4;4453:3;4447;4441:5;4437:3;4509:4;4502;4496:5;4492:3;4540:2;4527:6;;;-1:-1:-1;;;;;;4408:164:31:o;597:125::-;671:7;;:::i;:::-;697:18;704:2;708;712;697:6;:18::i;:::-;690:25;597:125;-1:-1:-1;;;;597:125:31:o;728:830::-;822:14;;:::i;:::-;922:4;902:17;;;973:13;983:2;973:9;:13::i;:::-;968:2;:18;956:9;:30;936:50;;1033:13;1043:2;1033:9;:13::i;:::-;1028:2;:18;1016:9;:30;996:50;;1090:13;1100:2;1090:9;:13::i;:::-;1085:2;:18;1073:9;:30;1056:47;;1128:6;1118:17;;;;;;;;;;;;;-1:-1:-1;;1118:17:31;;;;;;;;;;;;1114:21;;1220:9;1213:4;1210:1;1206:3;1199:6;1264:9;1257:4;1254:1;1250:3;1243:6;1308:9;1301:4;1298:1;1294:3;1287:6;1381:41;1386:1;1389:10;1396:2;1389:6;:10::i;:::-;1401:9;1412:2;:9;1381:4;:41::i;:::-;1432;1437:1;1440:10;1447:2;1440:6;:10::i;:::-;1452:9;1463:2;:9;1432:4;:41::i;:::-;1483:46;1488:1;1491:10;1498:2;1491:6;:10::i;:::-;1503:9;1514:2;:9;1526:2;1514:14;1483:4;:46::i;:::-;728:830;;;;;;;;;:::o;1564:236::-;1623:7;1783:1;1778:2;1766;:9;:14;;;;;;;;:18;:26;;1791:1;1766:26;;;1787:1;1766:26;1742:51;;1759:2;1747;:9;:14;;;;;;;;1742:51;:1;:51;;1564:236;-1:-1:-1;;1564:236:31:o;1806:139::-;1862:7;1929:2;:9;1925:1;:13;;1806:139;-1:-1:-1;;1806:139:31:o;2182:127::-;2291:2;2270:33::o;1951:225::-;2044:9;2113:4;2106;2102:2;2098:3;2094;2086:32;;2137;2144:4;2150;2156:7;2166:2;2156:12;2137:6;:32::i;:::-;1951:225;;;;;:::o;26:4554::-;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "176200", - "executionCost": "215", - "totalCost": "176415" - }, - "external": { - "abiEncode(bytes,bytes,address[])": "infinite", - "memcpy(uint256,uint256,uint256)": "infinite" - }, - "internal": { - "abiLength(address[] memory)": "infinite", - "abiLength(bytes memory)": "infinite", - "addressAt(bytes memory,uint256)": "infinite", - "copy(bytes memory,uint256,uint256,uint256)": "infinite", - "encode(bytes memory,bytes memory,address[] memory)": "infinite", - "getPtr(address[] memory)": "infinite", - "getPtr(bytes memory)": "12", - "getSpecId(bytes memory)": "infinite", - "locationOf(bytes memory,uint256)": "infinite", - "toBytes(bytes4)": "infinite", - "uint256At(bytes memory,uint256)": "infinite", - "uint32At(bytes memory,uint256)": "infinite" - } - }, - "methodIdentifiers": { - "abiEncode(bytes,bytes,address[])": "137d7026", - "memcpy(uint256,uint256,uint256)": "11fe773d" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { - "CallsScript": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_script", - "type": "bytes" - }, - { - "name": "_input", - "type": "bytes" - }, - { - "name": "_blacklist", - "type": "address[]" - } - ], - "name": "execScript", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "src", - "type": "address" - }, - { - "indexed": true, - "name": "dst", - "type": "address" - } - ], - "name": "LogScriptCall", - "type": "event" - } - ], - "devdoc": { - "methods": { - "execScript(bytes,bytes,address[])": { - "params": { - "_blacklist": "Addresses the script cannot call to, or will revert.", - "_input": "Input is ignored in callscript", - "_script": "[ specId (uint32) ] many calls with this structure -> [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]" - }, - "return": "always returns empty byte array" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029", - "sourceMap": "152:1785:32:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb90029", - "sourceMap": "152:1785:32:-;;;;;;;;;;;;;;;;;;;;;;;808:1127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:1127:32;897:5;;:::i;:::-;287:1;914:16;;;;993:936;1000:25;;;993:936;;;1067:27;1085:8;1067:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1067:17:32;;:27;-1:-1:-1;;1067:27:32;:17;:27;;-1:-1:-1;;;1067:27:32:i;:::-;1041:53;;1181:1;1172:10;;1167:119;1184:21;;;1167:119;;;1257:10;;1268:1;1257:13;;;;;;;;;;;;;;-1:-1:-1;1257:13:32;;;1238:32;;;;;;-1:-1:-1;1230:41:32;;;;;;1207:3;;;;;1167:119;;;-1:-1:-1;1440:57:32;;;;1474:4;1440:57;;;1454:10;1440:57;;;;;;;;;;;1545:33;1562:8;1573:4;1562:15;1545:7;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:16:32;;:33;-1:-1:-1;;1545:33:32;:16;:33;;-1:-1:-1;;;1545:33:32:i;:::-;1537:42;;;-1:-1:-1;1617:42:32;1636:22;;;1617:7;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1617:18:32;;:42;-1:-1:-1;;1617:42:32;:18;:42;;-1:-1:-1;;;1617:42:32:i;:::-;1593:66;;1791:1;1788;1772:14;1757:13;1754:1;1737:15;1730:4;1725:3;1721;1716:4;1817:7;1825:23;;;;-1:-1:-1;;1876:42:32;;;1889:11;1876:42;;993:936;;;808:1127;;;;;;;;;;;;;:::o;2761:325:31:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:31;;;2947;;2923:157;-1:-1:-1;;;;2923:157:31:o;3092:355::-;3165:13;3190:12;3205:27;3215:5;3222:9;3205;:27::i;:::-;3371:59;3290:66;3280:3;;;3276;;3252:189;-1:-1:-1;;;;3252:189:31:o;3453:182::-;3587:3;3602:4;3587:3;;3563:66::o;2567:188::-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:31:o;152:1785:32:-;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "183000", - "executionCost": "221", - "totalCost": "183221" - }, - "external": { - "execScript(bytes,bytes,address[])": "infinite" - } - }, - "methodIdentifiers": { - "execScript(bytes,bytes,address[])": "279cea35" - } - }, - "userdoc": { - "methods": { - "execScript(bytes,bytes,address[])": { - "notice": "Executes a number of call scripts" - } - } - } - } - }, - "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { - "DelegateScript": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_script", - "type": "bytes" - }, - { - "name": "_input", - "type": "bytes" - }, - { - "name": "_blacklist", - "type": "address[]" - } - ], - "name": "execScript", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": { - "execScript(bytes,bytes,address[])": { - "params": { - "_blacklist": "If any address is passed, will revert.", - "_input": "ABI encoded call to be made to contract (if empty executes default exec() function)", - "_script": "[ specId (uint32) ][ contract address (20 bytes) ]" - }, - "return": "Call return data" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029", - "sourceMap": "159:1973:33:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd44254110029", - "sourceMap": "159:1973:33:-;;;;;;;;;;;;;;;;;;;;;;;648:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;648:387:33;737:5;;:::i;:::-;762:22;;754:31;;;;;;926:26;908:44;;900:53;;;;;;970:58;979:40;293:1;979:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;979:17:33;;:40;-1:-1:-1;;979:40:33;:17;:40;;-1:-1:-1;;;979:40:33:i;:::-;1021:6;;970:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;970:8:33;;-1:-1:-1;;;;;970:58:33:i;:::-;963:65;648:387;-1:-1:-1;;;;;;;648:387:33:o;2761:325:31:-;2835:14;2861:12;2876:27;2886:5;2893:9;2876;:27::i;:::-;3042;-1:-1:-1;;2951:3:31;;;2947;;2923:157;-1:-1:-1;;;;2923:157:31:o;1108:249:33:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:33;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:33:o;2567:188:31:-;2641:14;2727:9;2721:4;2717:3;2710:5;2706:3;2700:5;2690:49;2676:73;-1:-1:-1;;;2676:73:31:o;1363:170:33:-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:33;:::o;3641:293:31:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:31;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:31;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:31;-1:-1:-1;;3811:9:31;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:31;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:31;-1:-1:-1;;3851:10:31;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:31;-1:-1:-1;;3892:10:31;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:31;3641:293;-1:-1:-1;;3641:293:31:o;159:1973:33:-;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "234000", - "executionCost": "270", - "totalCost": "234270" - }, - "external": { - "execScript(bytes,bytes,address[])": "infinite" - }, - "internal": { - "defaultInput()": "infinite", - "delegate(address,bytes memory)": "infinite", - "isContract(address)": "721", - "returnedData()": "infinite" - } - }, - "methodIdentifiers": { - "execScript(bytes,bytes,address[])": "279cea35" - } - }, - "userdoc": { - "methods": { - "execScript(bytes,bytes,address[])": { - "notice": "Executes script by delegatecall into a contract" - } - } - } - }, - "DelegateScriptTarget": { - "abi": [ - { - "constant": false, - "inputs": [], - "name": "exec", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "exec()": "c1c0e9c4" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { - "DeployDelegateScript": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_script", - "type": "bytes" - }, - { - "name": "_input", - "type": "bytes" - }, - { - "name": "_blacklist", - "type": "address[]" - } - ], - "name": "execScript", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": { - "execScript(bytes,bytes,address[])": { - "params": { - "_blacklist": "If any address is passed, will revert.", - "_input": "ABI encoded call to be made to contract (if empty executes default exec() function)", - "_script": "[ specId (uint32) ][ contractInitcode (bytecode) ]" - }, - "return": "Call return data" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", - "sourceMap": "137:1475:34:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", - "sourceMap": "137:1475:34:-;;;;;;;;;;;;;;;;;;;;;;;664:452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;664:452:34;753:5;;:::i;:::-;859:10;;778:22;;770:31;;;;;;882:7;;872:18;;;;;;;;;;;;;;;;;;;;;;;;;;919:5;:9;;;;;;;;;;;872:18;;-1:-1:-1;919:9:34;;;-1:-1:-1;942:22:34;;938:113;;;991:15;998:7;;991:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;991:6:34;;-1:-1:-1;;;;;991:15:34:i;:::-;1020:5;:9;;;;;;;;;;:20;;-1:-1:-1;;1020:20:34;;;;;;;;-1:-1:-1;938:113:34;1068:41;1092:8;1102:6;;1068:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1068:23:34;;-1:-1:-1;;;;;1068:41:34:i;:::-;1061:48;664:452;-1:-1:-1;;;;;;;;;664:452:34:o;1186:424::-;1235:12;1469:4;1459:7;1453:5;1449:3;1442:4;1433:7;1429:3;1426:1;1419:6;1411:64;;1514:4;1502:11;1495:6;1538:1;1533:23;;;;1488:68;1268:336;;;:::o;1108:249:33:-;1180:19;;:::i;:::-;1219:17;1230:5;1219:10;:17::i;:::-;1211:26;;;;;;;;1255:5;:18;;1290:1;1274:6;:13;:17;:43;;1303:14;:12;:14::i;:::-;1274:43;;;1294:6;1274:43;1255:63;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1247:72:33;;;;;;;;1336:14;:12;:14::i;:::-;1329:21;1108:249;-1:-1:-1;;;1108:249:33:o;1363:170::-;1423:4;1480:11;;1518:8;;1363:170::o;1539:125::-;1586:5;;:::i;:::-;1610:47;:37;:45;:47::i;:::-;1603:54;;1539:125;:::o;1732:398::-;1779:9;;:::i;:::-;1835:14;1875:4;1869:5;1862:18;;1945:4;1939;1935:3;1930;1926;1920:4;1913:6;1997:4;1992:3;1985:6;2069:4;2066:1;2059:4;2054:3;2050;2035:14;-1:-1:-1;1732:398:33;:::o;3641:293:31:-;3694:5;;:::i;:::-;3711:20;;:::i;:::-;3744:1;3734:12;;;;;;;;;;;;;-1:-1:-1;;3734:12:31;;;;;;;;;;;;3711:35;;3776:4;3756:7;3764:1;3756:10;;;;;;;;-1:-1:-1;;;;;;3756:25:31;;;;;;;;;;:10;;;:25;-1:-1:-1;3811:9:31;-1:-1:-1;;3811:9:31;;;3791:7;3799:1;3791:7;:10;;;;;;;-1:-1:-1;;;;;;3791:30:31;;;;;;;;;;:10;;;:30;-1:-1:-1;3851:10:31;-1:-1:-1;;3851:10:31;;;3831:7;3851:10;3831:7;:10;;;;;;;-1:-1:-1;;;;;;3831:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3892:10:31;-1:-1:-1;;3892:10:31;;;3872:7;3880:1;3872:7;:10;;;;;;;-1:-1:-1;;;;;;3872:31:31;;;;;;;;;;:10;;;:31;-1:-1:-1;3920:7:31;3641:293;-1:-1:-1;;3641:293:31:o;137:1475:34:-;;;;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "252600", - "executionCost": "289", - "totalCost": "252889" - }, - "external": { - "execScript(bytes,bytes,address[])": "infinite" - }, - "internal": { - "deploy(bytes memory)": "infinite" - } - }, - "methodIdentifiers": { - "execScript(bytes,bytes,address[])": "279cea35" - } - }, - "userdoc": { - "methods": { - "execScript(bytes,bytes,address[])": { - "notice": "Executes script by delegatecall into a deployed contract (exec() function)" - } - } - } - } - }, - "@aragon/os/contracts/factory/AppProxyFactory.sol": { - "AppProxyFactory": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "name": "newAppProxyPinned", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - } - ], - "name": "newAppProxy", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "name": "newAppProxy", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - } - ], - "name": "newAppProxyPinned", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proxy", - "type": "address" - } - ], - "name": "NewAppProxy", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b61134b8061001e6000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029", - "sourceMap": "106:964:35:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d162f8b08114610066578063e156a8f3146100e7578063ede658b014610109578063ff289fc51461016e575b600080fd5b341561007157600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061019095505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156100f257600080fd5b6100cb600160a060020a036004351660243561027e565b341561011457600080fd5b6100cb60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102b595505050505050565b341561017957600080fd5b6100cb600160a060020a03600435166024356102c3565b60008084848461019e6102f3565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156101ed5780820151838201526020016101d5565b50505050905090810190601f16801561021a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151561023757600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b60006102ae838360006040518059106102945750595b818152601f19601f830116810160200160405290506102b5565b9392505050565b60008084848461019e610303565b60006102ae838360006040518059106102d95750595b818152601f19601f83011681016020016040529050610190565b6040516107fe8061031483390190565b60405161080e80610b128339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc0029a165627a7a723058206ff661d64423823b38fec97c94925b29cd3e9f9c39928cfbcb3f9e05eac505690029", - "sourceMap": "106:964:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:272;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:35;;-1:-1:-1;796:272:35;;-1:-1:-1;;;;;;796:272:35;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:35;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:35;;-1:-1:-1;339:281:35;;-1:-1:-1;;;;;;339:281:35;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:35;;;;;;;796:272;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:35;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:35;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:35:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:35;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:35:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:35;;;;;;;;;;;;735:17;:48::i;106:964::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "987800", - "executionCost": "1022", - "totalCost": "988822" - }, - "external": { - "newAppProxy(address,bytes32)": "infinite", - "newAppProxy(address,bytes32,bytes)": "infinite", - "newAppProxyPinned(address,bytes32)": "infinite", - "newAppProxyPinned(address,bytes32,bytes)": "infinite" - } - }, - "methodIdentifiers": { - "newAppProxy(address,bytes32)": "e156a8f3", - "newAppProxy(address,bytes32,bytes)": "ede658b0", - "newAppProxyPinned(address,bytes32)": "ff289fc5", - "newAppProxyPinned(address,bytes32,bytes)": "d162f8b0" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/factory/DAOFactory.sol": { - "DAOFactory": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "baseACL", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_root", - "type": "address" - } - ], - "name": "newDAO", - "outputs": [ - { - "name": "dao", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "regFactory", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "baseKernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_regFactory", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "dao", - "type": "address" - } - ], - "name": "DeployDAO", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "reg", - "type": "address" - } - ], - "name": "DeployEVMScriptRegistry", - "type": "event" - } - ], - "devdoc": { - "methods": { - "newDAO(address)": { - "params": { - "_root": "Address that will be granted control to setup DAO permissions" - } - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b60405160208061439683398101604052808051915061002e90506100c7565b604051809103906000f080151561004457600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561006c6100d7565b604051809103906000f080151561008257600080fd5b60018054600160a060020a031916600160a060020a039283161790558116156100c15760028054600160a060020a031916600160a060020a0383161790555b506100e7565b604051611fdc80610dd583390190565b6040516115e580612db183390190565b610cdf806100f66000396000f3006060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca1200296060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe999300296060604052341561000f57600080fd5b6115c78061001e6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630a8ed3db81146100fd5780633d6ab68f1461012757806360b1e0571461014c5780636815c9921461015f5780636d6712d8146101c9578063710a83151461020557806380afdea8146102525780638b3dd749146102655780639b3fdf4c146102785780639d0effdb1461028b578063a1658fad146102b3578063afd925df14610316578063b19057271461033e578063be0384781461037c578063c4d66de8146103ab578063c513f66e146103ca578063d4aae0c4146103dd578063f520b58d146103f0578063f92a79ff1461045a578063fdef9106146104ab575b600080fd5b341561010857600080fd5b610125600160a060020a0360043581169060243516604435610517565b005b341561013257600080fd5b61013a610547565b60405190815260200160405180910390f35b341561015757600080fd5b61013a61054c565b341561016a57600080fd5b610125600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061058095505050505050565b34156101d457600080fd5b6101f1600160a060020a0360043581169060243516604435610603565b604051901515815260200160405180910390f35b341561021057600080fd5b61021e600435602435610644565b60405160ff9384168152919092166020820152600160f060020a039091166040808301919091526060909101905180910390f35b341561025d57600080fd5b61013a61068c565b341561027057600080fd5b61013a610692565b341561028357600080fd5b61013a610699565b341561029657600080fd5b610125600160a060020a0360043581169060243516604435610715565b34156102be57600080fd5b6101f160048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061076a95505050505050565b341561032157600080fd5b610125600160a060020a03600435811690602435166044356108a8565b341561034957600080fd5b610360600160a060020a03600435166024356108de565b604051600160a060020a03909116815260200160405180910390f35b341561038757600080fd5b610125600160a060020a03600435811690602435811690604435906064351661090f565b34156103b657600080fd5b610125600160a060020a0360043516610938565b34156103d557600080fd5b61013a610978565b34156103e857600080fd5b61036061098e565b34156103fb57600080fd5b6101f1600160a060020a0360048035821691602480359091169160443591608490606435908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061099d95505050505050565b341561046557600080fd5b61036060046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a4395505050505050565b34156104b657600080fd5b6101f1600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b610542838383600060405180591061052c5750595b9080825280602002602001820160405250610580565b505050565b600181565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6000838361058e82826108de565b600160a060020a031633600160a060020a03161415156105ad57600080fd5b6105b8878787610603565b156105c257600080fd5b60008451116105e357600060405190815260200160405180910390206105ec565b6105ec84610b58565b92506105fa87878786610cad565b50505050505050565b600061060d611530565b600060405180591061061c5750595b9080825280602002602001820160405250905061063b8585858461099d565b95945050505050565b60656020528160005260406000208181548110151561065f57fe5b60009182526020909120015460ff80821693506101008204169150620100009004600160f060020a031683565b60015481565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b818161072182826108de565b600160a060020a031633600160a060020a031614151561074057600080fd5b61074b858585610603565b151561075657600080fd5b6107638585856000610cad565b5050505050565b6000610774611530565b6000808451111561078d57835160200290508391508082525b600054600160a060020a0316158061089e575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561088257600080fd5b6102c65a03f1151561089357600080fd5b505050604051805190505b9695505050505050565b81816108b482826108de565b600160a060020a031633600160a060020a03161415156108d357600080fd5b610763858585610d22565b6000606660006108ee8585610da4565b8152602081019190915260400160002054600160a060020a03169392505050565b61091b33306001610603565b151561092657600080fd5b61093284848484610de8565b50505050565b6003541561094557600080fd5b61094d610e30565b60005433600160a060020a0390811691161461096857600080fd5b6109758130600182610de8565b50565b6000604051908152602001604051809103902081565b600054600160a060020a031681565b6000806000606460006109b1898989610e4a565b8152602081019190915260400160002054915081158015906109db57506109db8288888888610e9b565b156109e95760019250610a39565b606460006109fa6000198989610e4a565b815260208101919091526040016000205490508015801590610a265750610a2681600019888888610e9b565b15610a345760019250610a39565b600092505b5050949350505050565b6000610a4d610ece565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ab4578082015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610aff57600080fd5b6102c65a03f11515610b1057600080fd5b50505060405180519392505050565b6000610b29611530565b600060208451811515610b3857fe5b049050839150808252610b4d8787878561099d565b979650505050505050565b6000806000806000610b68611542565b8660405180828051906020019060200280838360005b83811015610b96578082015183820152602001610b7e565b505050509050019150506040519081900390206000818152606560205260409020805491965094501515610ca257600092505b8651831015610ca257868381518110610bde57fe5b906020019060200201519150606060405190810160405280610bff84610fbe565b60ff168152602001610c1084610fe4565b60ff16815260200183600160f060020a03168152509050838054806001018281610c3a9190611562565b600092835260209092208391018151815460ff191660ff919091161781556020820151815460ff919091166101000261ff001990911617815560408201518154600160f060020a0391909116620100000261ffff909116179055505060019290920191610bc9565b509295945050505050565b8060646000610cbd878787610e4a565b815260208101919091526040908101600020919091558290600160a060020a0380861691908716907f759b9a74d5354b5801710a0c1b283cc9f0d32b607ac8ced10c83ac8e75c77d52908515159051901515815260200160405180910390a450505050565b8260666000610d318585610da4565b815260208101919091526040908101600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03938416179055848216918391908516907ff3addc8b8e25ee11528a61b0e65092cae0666ef0ec0c64cb303993c88d689b4d905160405180910390a4505050565b600060018383604051928352600160a060020a03919091166c0100000000000000000000000002602083015260348201526054016040518091039020905092915050565b6000610df484846108de565b600160a060020a031614610e0757600080fd5b610e2584848460006040519081526020016040518091039020610cad565b610932818484610d22565b60035415610e3d57600080fd5b610e45611009565b600355565b600060028484846040519384526c01000000000000000000000000600160a060020a0393841681026020860152919092160260348301526048820152606801604051809103902090505b9392505050565b600080604051908152602001604051908190039020861415610ebf5750600161063b565b61089e8660008787878761100d565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610f9a57600080fd5b6102c65a03f11515610fab57600080fd5b50505060405180519250829150505b5090565b7f0100000000000000000000000000000000000000000000000000000000000000900490565b7e01000000000000000000000000000000000000000000000000000000000000900490565b4390565b6000611017611542565b600088815260656020526040812054819063ffffffff8a161061103d5760009350611293565b60008a8152606560205260409020805463ffffffff8b1690811061105d57fe5b906000526020600020900160606040519081016040908152915460ff80821683526101008204166020830152620100009004600160f060020a031691810191909152925060cc835160ff1614156110c3576110bc838b8a8a8a8a6112a0565b9350611293565b8260400151600160f060020a0316905060cb835160ff161415611185578260400151600160a060020a0316631a2b625089898960006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561114e57600080fd5b6102c65a03f1151561115f57600080fd5b50505060405180519050611174576000611177565b60015b60ff16915060019050611242565b60c8835160ff1614156111a15761119a611009565b9150611242565b60c9835160ff1614156111c7576111b6611456565b67ffffffffffffffff169150611242565b60ca835160ff1614156111e55733600160a060020a03169150611242565b60cd835160ff161415611207578260400151600160f060020a03169150611242565b8451835160ff161061121c5760009350611293565b84835160ff168151811061122c57fe5b90602001906020020151600160f060020a031691505b600c836020015160ff16600c81111561125757fe5b600c81111561126257fe5b141561127357600082119350611293565b61129082846020015160ff16600c81111561128a57fe5b8361145a565b93505b5050509695505050505050565b60008080808080808080600b8f6020015160ff16600c8111156112bf57fe5b600c8111156112ca57fe5b141561131d576112e68f60400151600160f060020a0316611517565b9750975097506112fa8e898f8f8f8f61100d565b94506113168e8661130b578761130d565b885b8f8f8f8f61100d565b9850611444565b6113338f60400151600160f060020a0316611517565b50935093506113468e858f8f8f8f61100d565b915060078f6020015160ff16600c81111561135d57fe5b600c81111561136857fe5b14156113775781159850611444565b8180156113a1575060098f6020015160ff16600c81111561139457fe5b600c81111561139f57fe5b145b156113af5760019850611444565b811580156113da575060088f6020015160ff16600c8111156113cd57fe5b600c8111156113d857fe5b145b156113e85760009850611444565b6113f68e848f8f8f8f61100d565b9050600a8f6020015160ff16600c81111561140d57fe5b600c81111561141857fe5b141561144057818015611429575080155b806113165750811580156113165750809850611444565b8098505b50505050505050509695505050505050565b4290565b6000600183600c81111561146a57fe5b14156114795750828114610e94565b600283600c81111561148757fe5b1415611497575082811415610e94565b600383600c8111156114a557fe5b14156114b45750808311610e94565b600483600c8111156114c257fe5b14156114d15750808310610e94565b600583600c8111156114df57fe5b14156114ef575080831015610e94565b600683600c8111156114fd57fe5b141561150d575080831115610e94565b5060009392505050565b9064010000000082049068010000000000000000830490565b60206040519081016040526000815290565b606060405190810160409081526000808352602083018190529082015290565b8154818355818115116105425760008381526020902061054291810190830161069691905b80821115610fba57600081556001016115875600a165627a7a72305820453905930d96216332244a56a29d36818098443dfe9ae2db9d325f0a6aa8cedb0029", - "sourceMap": "162:1647:36:-;;;379:316;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;521:12:36;;-1:-1:-1;521:12:36;:::i;:::-;;;;;;;;;;;;;;;;;;500:10;:34;;-1:-1:-1;;;;;;500:34:36;-1:-1:-1;;;;;500:34:36;;;;;;;;;;562:9;;:::i;:::-;;;;;;;;;;;;;;;;;;544:7;:28;;-1:-1:-1;;;;;;544:28:36;-1:-1:-1;;;;;544:28:36;;;;;;587:25;;;583:106;;628:10;:50;;-1:-1:-1;;;;;;628:50:36;-1:-1:-1;;;;;628:50:36;;;;;583:106;379:316;162:1647;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100485763ffffffff60e060020a600035041663086b339e811461004d578063216874441461007c578063656362b51461009b578063b16dd130146100ae575b600080fd5b341561005857600080fd5b6100606100c1565b604051600160a060020a03909116815260200160405180910390f35b341561008757600080fd5b610060600160a060020a03600435166100d0565b34156100a657600080fd5b6100606106bc565b34156100b957600080fd5b6100606106cb565b600154600160a060020a031681565b6000805481908190819081908190600160a060020a03166100ef6106da565b600160a060020a039091168152602001604051809103906000f080151561011557600080fd5b600254909650600160a060020a031615156101305786610132565b305b600154909550600160a060020a038088169163485cc95591168760405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401600060405180830381600087803b151561019157600080fd5b6102c65a03f115156101a257600080fd5b50505085600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b5050506040518051600254909550600160a060020a03161590506106755783600160a060020a0316633d6ab68f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561026057600080fd5b6102c65a03f1151561027157600080fd5b5050506040518051935050600160a060020a038616638ea8dc9d6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c257600080fd5b6102c65a03f115156102d357600080fd5b5050506040518051600254909350600160a060020a038087169250630a8ed3db9116868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561034657600080fd5b6102c65a03f1151561035757600080fd5b5050600254600160a060020a03808716925063be038478911688853060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156103c957600080fd5b6102c65a03f115156103da57600080fd5b5050600254600160a060020a0316905063869abc24878960006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561043f57600080fd5b6102c65a03f1151561045057600080fd5b5050506040518051905090507f1a40224412580c1ae5a2fbe8029a565f49a3a029608a8fd9320b32477f31457981604051600160a060020a03909116815260200160405180910390a1600254600160a060020a0380861691639d0effdb9116888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561050057600080fd5b6102c65a03f1151561051157600080fd5b50505083600160a060020a0316630a8ed3db88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561057557600080fd5b6102c65a03f1151561058657600080fd5b50505083600160a060020a031663afd925df6000888560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b50505083600160a060020a031663afd925df88868660405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561066057600080fd5b6102c65a03f1151561067157600080fd5b5050505b7f3a7eb042a769adf51e9be78b68ed7af0ad7b379246536efc376ed2ca0123828286604051600160a060020a03909116815260200160405180910390a15050505050919050565b600254600160a060020a031681565b600054600160a060020a031681565b6040516105c9806106eb8339019056006060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029a165627a7a72305820ae4bb9d61f1bb5c9d7c39a2465759b192628d226a173027099cf8eaac42cca120029", - "sourceMap": "162:1647:36:-;;;;;;;;;-1:-1:-1;;;162:1647:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;219:22:36;;;;;;;;;;;;;;797:1010;;;;;;;;;;-1:-1:-1;;;;;797:1010:36;;;;;247:42;;;;;;;;;;;;188:25;;;;;;;;;;;;219:22;;;-1:-1:-1;;;;;219:22:36;;:::o;797:1010::-;844:10;895;;844;;;;;;;;;;-1:-1:-1;;;;;895:10:36;879:27;;:::i;:::-;-1:-1:-1;;;;;879:27:36;;;;;;;;;;;;;;;;;;;;;;;;948:10;;866:41;;-1:-1:-1;;;;;;948:10:36;940:33;;:48;;983:5;940:48;;;976:4;940:48;1013:7;;918:70;;-1:-1:-1;;;;;;998:14:36;;;;;;1013:7;918:70;998:36;;-1:-1:-1;;;998:36:36;;;;;;-1:-1:-1;;;;;998:36:36;;;;;;;;;;;;;;;-1:-1:-1;998:36:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:3;-1:-1:-1;;;;;1059:7:36;;:9;;;;;;;;;;;-1:-1:-1;;;1059:9:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:10;;1059:9;;-1:-1:-1;;;;;;1092:10:36;1084:33;;-1:-1:-1;1080:696:36;;1152:3;-1:-1:-1;;;;;1152:27:36;;:29;;;;;;;;;;;-1:-1:-1;;;1152:29:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1220:20:36;;;:22;;;;;;;;;;;-1:-1:-1;;;1220:22:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1277:10;;1220:22;;-1:-1:-1;;;;;;1257:19:36;;;;-1:-1:-1;1257:19:36;;1277:10;1257:3;1294:8;1257:46;;-1:-1:-1;;;1257:46:36;;;;;;-1:-1:-1;;;;;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1257:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1339:10:36;;-1:-1:-1;;;;;1318:20:36;;;;-1:-1:-1;1318:20:36;;1339:10;1351:3;1356:14;1372:4;1318:59;;-1:-1:-1;;;1318:59:36;;;;;;-1:-1:-1;;;;;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1318:59:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1416:10:36;;-1:-1:-1;;;;;1416:10:36;;-1:-1:-1;1416:31:36;1448:3;1453:5;1416:10;:43;;;;;;;-1:-1:-1;;;1416:43:36;;;;;;-1:-1:-1;;;;;1416:43:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:67;;1473:37;1505:3;1473:37;;-1:-1:-1;;;;;1473:37:36;;;;;;;;;;;;;;1546:10;;-1:-1:-1;;;;;1525:20:36;;;;;;1546:10;1558:3;1563:14;1525:53;;-1:-1:-1;;;1525:53:36;;;;;;-1:-1:-1;;;;;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1525:53:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1592:3;-1:-1:-1;;;;;1592:19:36;;1612:5;1619:3;1624:8;1592:41;;-1:-1:-1;;;1592:41:36;;;;;;-1:-1:-1;;;;;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1592:41:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:3;-1:-1:-1;;;;;1648:24:36;;1681:1;1685:3;1690:14;1648:57;;-1:-1:-1;;;1648:57:36;;;;;;-1:-1:-1;;;;;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1648:57:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1719:3;-1:-1:-1;;;;;1719:24:36;;1744:5;1751:3;1756:8;1719:46;;-1:-1:-1;;;1719:46:36;;;;;;-1:-1:-1;;;;;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1719:46:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:696;1786:14;1796:3;1786:14;;-1:-1:-1;;;;;1786:14:36;;;;;;;;;;;;;;797:1010;;;;;;;;:::o;247:42::-;;;-1:-1:-1;;;;;247:42:36;;:::o;188:25::-;;;-1:-1:-1;;;;;188:25:36;;:::o;162:1647::-;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "659000", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "baseACL()": "589", - "baseKernel()": "655", - "newDAO(address)": "infinite", - "regFactory()": "633" - } - }, - "methodIdentifiers": { - "baseACL()": "086b339e", - "baseKernel()": "b16dd130", - "newDAO(address)": "21687444", - "regFactory()": "656362b5" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { - "EVMScriptRegistryFactory": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "baseReg", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "baseDeployDel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_dao", - "type": "address" - }, - { - "name": "_root", - "type": "address" - } - ], - "name": "newEVMScriptRegistry", - "outputs": [ - { - "name": "reg", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EVMSCRIPT_REGISTRY_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "baseCalls", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "name": "newAppProxyPinned", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - } - ], - "name": "newAppProxy", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "baseDel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "name": "newAppProxy", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - } - ], - "name": "newAppProxyPinned", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proxy", - "type": "address" - } - ], - "name": "NewAppProxy", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b61001761010c565b604051809103906000f080151561002d57600080fd5b60008054600160a060020a031916600160a060020a039290921691909117905561005561011d565b604051809103906000f080151561006b57600080fd5b60018054600160a060020a031916600160a060020a039290921691909117905561009361012e565b604051809103906000f08015156100a957600080fd5b60028054600160a060020a031916600160a060020a03929092169190911790556100d161013f565b604051809103906000f08015156100e757600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055610150565b604051610aac8062001cb983390190565b6040516103b1806200276583390190565b6040516104b08062002b1683390190565b60405161050d8062002fc683390190565b611b5980620001606000396000f3006060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e972200296060604052341561000f57600080fd5b610a8e8061001e6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166304bf2a7f81146100b05780635ca4d4bb1461011d57806360b1e0571461013557806380afdea81461015a5780638129fc1c1461016d57806387a16f12146101805780638b3dd7491461019f5780639b3fdf4c146101b2578063a1658fad146101c5578063bd8fde1c1461023c578063d4aae0c41461024f578063f92a79ff14610262578063f97a05df146102b3575b600080fd5b34156100bb57600080fd5b61010160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506102ed95505050505050565b604051600160a060020a03909116815260200160405180910390f35b341561012857600080fd5b610133600435610369565b005b341561014057600080fd5b6101486103eb565b60405190815260200160405180910390f35b341561016557600080fd5b61014861041f565b341561017857600080fd5b610133610425565b341561018b57600080fd5b610148600160a060020a03600435166104cb565b34156101aa57600080fd5b6101486105a1565b34156101bd57600080fd5b6101486105a8565b34156101d057600080fd5b61022860048035600160a060020a031690602480359190606490604435908101908301358060208082020160405190810160405280939291908181526020018383602002808284375094965061062495505050505050565b604051901515815260200160405180910390f35b341561024757600080fd5b610148610762565b341561025a57600080fd5b610101610767565b341561026d57600080fd5b61010160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061077695505050505050565b34156102be57600080fd5b6102c9600435610852565b604051600160a060020a039092168252151560208201526040908101905180910390f35b60008060006102fb84610885565b63ffffffff16915081158061031257506064548210155b156103205760009250610362565b606480548390811061032e57fe5b6000918252602090912001805490915060a060020a900460ff1661035357600061035f565b8054600160a060020a03165b92505b5050919050565b60016103953382600060405180591061037f5750595b9080825280602002602001820160405250610624565b15156103a057600080fd5b60006064838154811015156103b157fe5b6000918252602090912001805491151560a060020a0274ff0000000000000000000000000000000000000000199092169190911790555050565b6040517f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60015481565b6003541561043257600080fd5b61043a610898565b606480546001810161044c83826109f5565b9160005260206000209001600060408051908101604052600080825260208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161790555050565b600060016104f733828460405180591061037f5750599080825280602002602001820160405250610624565b151561050257600080fd5b606480546001810161051483826109f5565b9160005260206000209001600060408051908101604052600160a060020a0387168152600160208201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151815490151560a060020a0274ff00000000000000000000000000000000000000001990911617905550915050919050565b6003545b90565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600061062e610a1e565b6000808451111561064757835160200290508391508082525b600054600160a060020a03161580610758575060008054600160a060020a03169063fdef91069088903090899087906040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b838110156106ee5780820151838201526020016106d6565b50505050905090810190601f16801561071b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151561073c57600080fd5b6102c65a03f1151561074d57600080fd5b505050604051805190505b9695505050505050565b600181565b600054600160a060020a031681565b60006107806108b2565b600160a060020a03166304bf2a7f836000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107e75780820151838201526020016107cf565b50505050905090810190601f1680156108145780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561083257600080fd5b6102c65a03f1151561084357600080fd5b50505060405180519392505050565b606480548290811061086057fe5b600091825260209091200154600160a060020a038116915060a060020a900460ff1682565b60006108928260006109a2565b92915050565b600354156108a557600080fd5b6108ad6109e1565b600355565b600080548190600160a060020a03166342c71f1d6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519250829150505b5090565b6000806109af84846109e5565b60e060020a7fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b4390565b6000816020018301519392505050565b815481835581811511610a1957600083815260209020610a19918101908301610a30565b505050565b60206040519081016040526000815290565b6105a591905b8082111561099e57805474ffffffffffffffffffffffffffffffffffffffffff19168155600101610a365600a165627a7a723058204b0eeb7ba5d11e35858db7c7a7fc1d6ea08de2ed169205a9949417665585108200296060604052341561000f57600080fd5b6103938061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610355565b600460008080805b8a8510156102a25761014c858d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102b11692505050565b9350600092505b868310156101a25787878481811061016757fe5b90506020020135600160a060020a0316600160a060020a031684600160a060020a03161415151561019757600080fd5b600190920191610153565b83600160a060020a031630600160a060020a031633600160a060020a03167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610231856014018d8d8080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6102e61692505050565b63ffffffff16915061027d601886018d8d806020601f82018190048102016040519081016040528181529291906020840183838082843750949594505063ffffffff61033e1692505050565b905060008083836000886113885a03f180801561004057505093810160180193610102565b50505050509695505050505050565b6000806102be8484610345565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6000806102f38484610345565b7c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000090911604949350505050565b0160200190565b6000816020018301519392505050565b602060405190810160405260008152905600a165627a7a72305820bc948c6dd24d73d5c009efe35ebfdfa860e6e73a6ca2728efd7ee52d69ab8bb900296060604052341561000f57600080fd5b6104928061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa610454565b811561010557600080fd5b6018861461011257600080fd5b61018d610158600489898080601f016020809104026020016040519081016040528181529291906020840183838082843750949594505063ffffffff6101981692505050565b86868080601f0160208091040260200160405190810160405281815292919060208401838380828437506101cd945050505050565b979650505050505050565b6000806101a584846102a0565b6c010000000000000000000000006bffffffffffffffffffffffff1990911604949350505050565b6101d5610454565b6101de836102b0565b15156101e957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610216576102116102b8565b610218565b825b60405180828051906020019080838360005b8381101561024257808201518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561029157600080fd5b6102996102ee565b9392505050565b6000816020018301519392505050565b6000903b1190565b6102c0610454565b6102e97fc1c0e9c400000000000000000000000000000000000000000000000000000000610314565b905090565b6102f6610454565b3d6040519150602081018201604052808252806000602084013e5090565b61031c610454565b610324610454565b60046040518059106103335750595b818152601f19601f830116810160200160405290509050828160008151811061035857fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103a157fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816002815181106103eb57fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061043657fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820a0327d5d0ed6c694130c583360b5a63e19fb49789ab6c708b494c56fd442541100296060604052341561000f57600080fd5b6104ef8061001e6000396000f3006060604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279cea358114610045575b600080fd5b341561005057600080fd5b61007b60246004803582810192908201359181358083019290820135916044359182019101356100f2565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100b757808201518382015260200161009f565b50505050905090810190601f1680156100e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100fa6104b1565b600080831561010857600080fd5b88886040518083838082843782019150509250505060405190819003902060008181526020819052604090205490925073ffffffffffffffffffffffffffffffffffffffff1690508015156101d35761018f89898080601f016020809104026020016040519081016040528181529291906020840183838082843750610219945050505050565b6000838152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff831617905590505b61020c8188888080601f01602080910402602001604051908101604052818152929190602084018383808284375061023a945050505050565b9998505050505050505050565b60006004825103602483016000f09050803b15600181146100405750919050565b6102426104b1565b61024b8361030d565b151561025657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102835761027e610315565b610285565b825b60405180828051906020019080838360005b838110156102af578082015183820152602001610297565b50505050905090810190601f1680156102dc5780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102fe57600080fd5b61030661034b565b9392505050565b6000903b1190565b61031d6104b1565b6103467fc1c0e9c400000000000000000000000000000000000000000000000000000000610371565b905090565b6103536104b1565b3d6040519150602081018201604052808252806000602084013e5090565b6103796104b1565b6103816104b1565b60046040518059106103905750595b818152601f19601f83011681016020016040529050905082816000815181106103b557fe5b906020010190600160f860020a031916908160001a9053506101007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19841602816001815181106103fe57fe5b906020010190600160f860020a031916908160001a905350620100007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160028151811061044857fe5b906020010190600160f860020a031916908160001a90535063010000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff198416028160038151811061049357fe5b906020010190600160f860020a031916908160001a90535092915050565b602060405190810160405260008152905600a165627a7a72305820e5ecefa4e3cf37a874fec44be8a93519356c054aafc5cfe587e662bf20d664b00029", - "sourceMap": "321:1285:37:-;;;529:260;;;;;;;;600:23;;:::i;:::-;;;;;;;;;;;;;;;;;;582:7;:42;;-1:-1:-1;;;;;;582:42:37;-1:-1:-1;;;;;582:42:37;;;;;;;;;;654:17;;:::i;:::-;;;;;;;;;;;;;;;;;;634:9;:38;;-1:-1:-1;;;;;;634:38:37;-1:-1:-1;;;;;634:38:37;;;;;;;;;;700:20;;:::i;:::-;;;;;;;;;;;;;;;;;;682:7;:39;;-1:-1:-1;;;;;;682:39:37;-1:-1:-1;;;;;682:39:37;;;;;;;;;;755:26;;:::i;:::-;;;;;;;;;;;;;;;;;;731:13;:51;;-1:-1:-1;;;;;;731:51:37;-1:-1:-1;;;;;731:51:37;;;;;;;;;;321:1285;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100955763ffffffff60e060020a600035041663127d679c811461009a5780631b380940146100c957806360b1e057146100dc578063869abc24146101015780639b3fdf4c14610126578063af9a21bc14610139578063d162f8b01461014c578063e156a8f3146101b1578063e602e712146101d3578063ede658b0146101e6578063ff289fc51461024b575b600080fd5b34156100a557600080fd5b6100ad61026d565b604051600160a060020a03909116815260200160405180910390f35b34156100d457600080fd5b6100ad61027c565b34156100e757600080fd5b6100ef61028b565b60405190815260200160405180910390f35b341561010c57600080fd5b6100ad600160a060020a03600435811690602435166102ad565b341561013157600080fd5b6100ef6108f6565b341561014457600080fd5b6100ad610960565b341561015757600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061096f95505050505050565b34156101bc57600080fd5b6100ad600160a060020a0360043516602435610a5d565b34156101de57600080fd5b6100ad610a94565b34156101f157600080fd5b6100ad60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610aa395505050505050565b341561025657600080fd5b6100ad600160a060020a0360043516602435610ab1565b600054600160a060020a031681565b600354600160a060020a031681565b604051600080516020611b0e8339815191528152601301604051809103902081565b60008083600160a060020a031663958fde82604051600080516020611b0e833981519152815260130160405190819003902060008054600160a060020a0316906040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561033857600080fd5b6102c65a03f1151561034957600080fd5b5050506040518051925050600160a060020a038216638129fc1c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561039157600080fd5b6102c65a03f115156103a257600080fd5b50505083600160a060020a031663de2873596000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103eb57600080fd5b6102c65a03f115156103fc57600080fd5b5050506040518051915050600160a060020a03841663ae5b25408163178e60796000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561045357600080fd5b6102c65a03f1151561046457600080fd5b50505060405180519050604051600080516020611b0e833981519152815260130160405180910390208560006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104e357600080fd5b6102c65a03f115156104f457600080fd5b505050604051805190505080600160a060020a031663be038478308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561055657600080fd5b6102c65a03f1151561056757600080fd5b505050604051805190503060405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401600060405180830381600087803b15156105c857600080fd5b6102c65a03f115156105d957600080fd5b5050600154600160a060020a0380851692506387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561063957600080fd5b6102c65a03f1151561064a57600080fd5b50505060405180515050600254600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156106b157600080fd5b6102c65a03f115156106c257600080fd5b50505060405180515050600354600160a060020a03808416916387a16f12911660006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561072957600080fd5b6102c65a03f1151561073a57600080fd5b505050604051805190505080600160a060020a0316639d0effdb308485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561079c57600080fd5b6102c65a03f115156107ad57600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561080657600080fd5b6102c65a03f1151561081757600080fd5b50505080600160a060020a031663afd925df848485600160a060020a031663bd8fde1c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561087157600080fd5b6102c65a03f1151561088257600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108db57600080fd5b6102c65a03f115156108ec57600080fd5b5050505092915050565b6040517f617070000000000000000000000000000000000000000000000000000000000081526003016040518091039020604051600080516020611b0e83398151915281526013016040518091039020604051918252602082015260409081019051809103902081565b600154600160a060020a031681565b60008084848461097d610ae1565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156109cc5780820151838201526020016109b4565b50505050905090810190601f1680156109f95780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515610a1657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a1949350505050565b6000610a8d83836000604051805910610a735750595b818152601f19601f83011681016020016040529050610aa3565b9392505050565b600254600160a060020a031681565b60008084848461097d610af1565b6000610a8d83836000604051805910610ac75750595b818152601f19601f8301168101602001604052905061096f565b6040516107fe80610b0283390190565b60405161080e806113008339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002965766d7265672e617261676f6e706d2e65746800000000000000000000000000a165627a7a723058207750b4c7bb21479850ae2a7d9792c8ef853a729c91c76c58e617be296c4e97220029", - "sourceMap": "321:1285:37:-;;;;;;;;;-1:-1:-1;;;321:1285:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;408:22:37;;;;;;;;;;;;;;494:28;;;;;;;;;;;;68:84:30;;;;;;;;;;;;;;;;;;;;;;;;;;;795:809:37;;;;;;;;;;-1:-1:-1;;;;;795:809:37;;;;;;;;;;158:103:30;;;;;;;;;;;;436:24:37;;;;;;;;;;;;796:272:35;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:35;;-1:-1:-1;796:272:35;;-1:-1:-1;;;;;;796:272:35;176:157;;;;;;;;;;-1:-1:-1;;;;;176:157:35;;;;;;;466:22:37;;;;;;;;;;;;339:281:35;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:35;;-1:-1:-1;339:281:35;;-1:-1:-1;;;;;;339:281:35;626:164;;;;;;;;;;-1:-1:-1;;;;;626:164:35;;;;;;;408:22:37;;;-1:-1:-1;;;;;408:22:37;;:::o;494:28::-;;;-1:-1:-1;;;;;494:28:37;;:::o;68:84:30:-;120:32;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;68:84;:::o;795:809:37:-;869:21;1025:7;926:4;-1:-1:-1;;;;;926:25:37;;120:32:30;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;;979:7:37;;;-1:-1:-1;;;;;979:7:37;;926:61;;;;;;;-1:-1:-1;;;926:61:37;;;;;;;;;;;;;-1:-1:-1;;;;;926:61:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;998:14:37;;;:16;;;;;-1:-1:-1;;;998:16:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:4;-1:-1:-1;;;;;1039:8:37;;:10;;;;;;;;;;;-1:-1:-1;;;1039:10:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;1061:11:37;;;;1073:23;:25;;;;;;;;;;;-1:-1:-1;;;1073:25:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:32:30;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;1127:3:37;1061:70;;;;;;;;-1:-1:-1;;;1061:70:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:3;-1:-1:-1;;;;;1141:20:37;;1162:4;1168:3;1173;-1:-1:-1;;;;;1173:25:37;;:27;;;;;;;;;;;-1:-1:-1;;;1173:27:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1202:4;1141:66;;-1:-1:-1;;;1141:66:37;;;;;;-1:-1:-1;;;;;1141:66:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1141:66:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1240:9:37;;-1:-1:-1;;;;;1218:21:37;;;;-1:-1:-1;1218:21:37;;1240:9;;1218:32;;;;;;;-1:-1:-1;;;1218:32:37;;;;;;-1:-1:-1;;;;;1218:32:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1310:7:37;;-1:-1:-1;;;;;1288:21:37;;;;;;1310:7;;1288:30;;;;;;;-1:-1:-1;;;1288:30:37;;;;;;-1:-1:-1;;;;;1288:30:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1383:13:37;;-1:-1:-1;;;;;1361:21:37;;;;;;1383:13;;1361:36;;;;;;;-1:-1:-1;;;1361:36:37;;;;;;-1:-1:-1;;;;;1361:36:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:3;-1:-1:-1;;;;;1441:20:37;;1462:4;1468:3;1473;-1:-1:-1;;;;;1473:25:37;;:27;;;;;;;;;;;-1:-1:-1;;;1473:27:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:60;;-1:-1:-1;;;1441:60:37;;;;;;-1:-1:-1;;;;;1441:60:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1441:60:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:3;-1:-1:-1;;;;;1511:24:37;;1536:5;1543:3;1548;-1:-1:-1;;;;;1548:25:37;;:27;;;;;;;;;;;-1:-1:-1;;;1548:27:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:65;;-1:-1:-1;;;1511:65:37;;;;;;-1:-1:-1;;;;;1511:65:37;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1511:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;795:809:37;;;;;:::o;158:103:30:-;217:16;;;;;;;;;;;;;;120:32;;-1:-1:-1;;;;;;;;;;;120:32:30;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;158:103;:::o;436:24:37:-;;;-1:-1:-1;;;;;436:24:37;;:::o;796:272:35:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:35;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:35;;;;;;;;;;;;;;1056:5;796:272;-1:-1:-1;;;;796:272:35:o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:35;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:35:o;466:22:37:-;;;-1:-1:-1;;;;;466:22:37;;:::o;339:281:35:-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:35;;;;;;;;;;;;735:17;:48::i;321:1285:37:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "1400200", - "executionCost": "infinite", - "totalCost": "infinite" - }, - "external": { - "EVMSCRIPT_REGISTRY_APP()": "infinite", - "EVMSCRIPT_REGISTRY_APP_ID()": "infinite", - "baseCalls()": "699", - "baseDel()": "765", - "baseDeployDel()": "611", - "baseReg()": "589", - "newAppProxy(address,bytes32)": "infinite", - "newAppProxy(address,bytes32,bytes)": "infinite", - "newAppProxyPinned(address,bytes32)": "infinite", - "newAppProxyPinned(address,bytes32,bytes)": "infinite", - "newEVMScriptRegistry(address,address)": "infinite" - } - }, - "methodIdentifiers": { - "EVMSCRIPT_REGISTRY_APP()": "9b3fdf4c", - "EVMSCRIPT_REGISTRY_APP_ID()": "60b1e057", - "baseCalls()": "af9a21bc", - "baseDel()": "e602e712", - "baseDeployDel()": "1b380940", - "baseReg()": "127d679c", - "newAppProxy(address,bytes32)": "e156a8f3", - "newAppProxy(address,bytes32,bytes)": "ede658b0", - "newAppProxyPinned(address,bytes32)": "ff289fc5", - "newAppProxyPinned(address,bytes32,bytes)": "d162f8b0", - "newEVMScriptRegistry(address,address)": "869abc24" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/kernel/IKernel.sol": { - "IKernel": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "id", - "type": "bytes32" - } - ], - "name": "getApp", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "namespace", - "type": "bytes32" - }, - { - "name": "name", - "type": "bytes32" - }, - { - "name": "app", - "type": "address" - } - ], - "name": "setApp", - "outputs": [ - { - "name": "id", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "acl", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "who", - "type": "address" - }, - { - "name": "where", - "type": "address" - }, - { - "name": "what", - "type": "bytes32" - }, - { - "name": "how", - "type": "bytes" - } - ], - "name": "hasPermission", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "namespace", - "type": "bytes32" - }, - { - "indexed": true, - "name": "name", - "type": "bytes32" - }, - { - "indexed": true, - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "name": "app", - "type": "address" - } - ], - "name": "SetApp", - "type": "event" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "acl()": "de287359", - "getApp(bytes32)": "42c71f1d", - "hasPermission(address,address,bytes32,bytes)": "fdef9106", - "setApp(bytes32,bytes32,address)": "ae5b2540" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/kernel/Kernel.sol": { - "Kernel": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "apps", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_id", - "type": "bytes32" - } - ], - "name": "getApp", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_baseAcl", - "type": "address" - }, - { - "name": "_permissionsCreator", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "appId", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_appBase", - "type": "address" - } - ], - "name": "newAppInstance", - "outputs": [ - { - "name": "appProxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitializationBlock", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_MANAGER_ROLE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_appBase", - "type": "address" - } - ], - "name": "newPinnedAppInstance", - "outputs": [ - { - "name": "appProxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_namespace", - "type": "bytes32" - }, - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_app", - "type": "address" - } - ], - "name": "setApp", - "outputs": [ - { - "name": "id", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "name": "newAppProxyPinned", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "kernel", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "acl", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - } - ], - "name": "newAppProxy", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - }, - { - "name": "_initializePayload", - "type": "bytes" - } - ], - "name": "newAppProxy", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_who", - "type": "address" - }, - { - "name": "_where", - "type": "address" - }, - { - "name": "_what", - "type": "bytes32" - }, - { - "name": "_how", - "type": "bytes" - } - ], - "name": "hasPermission", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_kernel", - "type": "address" - }, - { - "name": "_appId", - "type": "bytes32" - } - ], - "name": "newAppProxyPinned", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proxy", - "type": "address" - } - ], - "name": "NewAppProxy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "namespace", - "type": "bytes32" - }, - { - "indexed": true, - "name": "name", - "type": "bytes32" - }, - { - "indexed": true, - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "name": "app", - "type": "address" - } - ], - "name": "SetApp", - "type": "event" - } - ], - "devdoc": { - "methods": { - "acl()": { - "details": "Get the installed ACL app", - "return": "ACL app" - }, - "getApp(bytes32)": { - "details": "Get the address of an app instance or base implementation", - "params": { - "_id": "App identifier" - }, - "return": "Address of the app" - }, - "getInitializationBlock()": { - "return": "Block number in which the contract was initialized" - }, - "hasPermission(address,address,bytes32,bytes)": { - "details": "Function called by apps to check ACL on kernel or to check permission status", - "params": { - "_how": "Extra data for ACL auth", - "_what": "Identifier for a group of actions in app", - "_where": "Address of the app", - "_who": "Sender of the original call" - }, - "return": "boolean indicating whether the ACL allows the role or not" - }, - "initialize(address,address)": { - "details": "Initialize can only be called once. It saves the block number in which it was initialized.", - "params": { - "_baseAcl": "Address of base ACL app", - "_permissionsCreator": "Entity that will be given permission over createPermission" - } - }, - "newAppInstance(bytes32,address)": { - "details": "Create a new instance of an app linked to this kernel and set its base implementation if it was not already set", - "params": { - "_appBase": "Address of the app's base implementation", - "_name": "Name of the app" - }, - "return": "AppProxy instance" - }, - "newPinnedAppInstance(bytes32,address)": { - "details": "Create a new pinned instance of an app linked to this kernel and set its base implementation if it was not already set", - "params": { - "_appBase": "Address of the app's base implementation", - "_name": "Name of the app" - }, - "return": "AppProxy instance" - }, - "setApp(bytes32,bytes32,address)": { - "details": "Set the resolving address of an app instance or base implementation", - "params": { - "_app": "Address of the app", - "_name": "Name of the app", - "_namespace": "App namespace to use" - }, - "return": "ID of app" - } - } - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b611fbe8061001e6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029", - "sourceMap": "228:4676:39:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "606060405260043610620001315763ffffffff60e060020a6000350416631113ed0d811462000136578063178e6079146200015e57806325012699146200017457806338bb6def146200018a57806342c71f1d14620001bf578063485cc95514620001d8578063756f6049146200020257806380afdea8146200021857806380cd5ac3146200022e5780638b3dd74914620002535780638ea8dc9d1462000269578063958fde82146200027f578063a3b4b07f14620002a4578063ae5b254014620002ba578063cbcc65eb14620002e2578063d162f8b014620002f8578063d4aae0c41462000360578063db8a61d41462000376578063de287359146200038c578063e156a8f314620003a2578063ede658b014620003c7578063fdef9106146200042f578063ff289fc514620004b2575b600080fd5b34156200014257600080fd5b6200014c620004d7565b60405190815260200160405180910390f35b34156200016a57600080fd5b6200014c6200050b565b34156200018057600080fd5b6200014c62000528565b34156200019657600080fd5b620001a3600435620005a4565b604051600160a060020a03909116815260200160405180910390f35b3415620001cb57600080fd5b620001a3600435620005bf565b3415620001e457600080fd5b62000200600160a060020a0360043581169060243516620005da565b005b34156200020e57600080fd5b6200014c62000718565b34156200022457600080fd5b6200014c6200074c565b34156200023a57600080fd5b620001a3600435600160a060020a036024351662000752565b34156200025f57600080fd5b6200014c620007ee565b34156200027557600080fd5b6200014c620007f4565b34156200028b57600080fd5b620001a3600435600160a060020a0360243516620007f9565b3415620002b057600080fd5b6200014c6200088a565b3415620002c657600080fd5b6200014c600435602435600160a060020a0360443516620008de565b3415620002ee57600080fd5b6200014c620009d6565b34156200030457600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650620009f995505050505050565b34156200036c57600080fd5b620001a362000af1565b34156200038257600080fd5b6200014c62000b00565b34156200039857600080fd5b620001a362000b1e565b3415620003ae57600080fd5b620001a3600160a060020a036004351660243562000b80565b3415620003d357600080fd5b620001a360048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bba95505050505050565b34156200043b57600080fd5b6200049e600160a060020a036004803582169160248035909116916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965062000bca95505050505050565b604051901515815260200160405180910390f35b3415620004be57600080fd5b620001a3600160a060020a036004351660243562000cd8565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b60405160ec60020a62061707028152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b600060208190529081526040902054600160a060020a031681565b600090815260208190526040902054600160a060020a031690565b60045460009015620005eb57600080fd5b620005f562000d0b565b620006203060405160008051602062001f738339815191528152601001604051809103902062000b80565b90506200066860405160e060020a6362617365028152600401604051809103902060405160008051602062001f73833981519152815260100160405180910390208562000d28565b50620006ae60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390208362000d28565b5080600160a060020a031663c4d66de88360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620006fe57600080fd5b6102c65a03f115156200071057600080fd5b505050505050565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60025481565b600060016200077c60405160e060020a636261736502815260040160405180910390208562000dc7565b6200078662000f32565b600082516020029050829150808252620007a33330868562000bca565b1515620007af57600080fd5b620007d660405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000b80565b979650505050505050565b60045490565b600181565b600060016200082360405160e060020a636261736502815260040160405180910390208562000dc7565b6200082d62000f32565b6000825160200290508291508082526200084a3330868562000bca565b15156200085657600080fd5b6200087d60405160e060020a63626173650281526004016040518091039020888862000ddd565b50620007e3308862000cd8565b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f7383398151915281526010016040518091039020604051918252602082015260409081019051809103902081565b60006001620008ee858562000dc7565b620008f862000f32565b600082516020029050829150808252620009153330868562000bca565b15156200092157600080fd5b600080620009318a8a8a62000d28565b9650620009b66040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e65746800000000000000000000000000815260130160405180910390206040519182526020820152604090810190518091039020620005bf565b915050803b60008111620009c957600080fd5b5050505050509392505050565b60405160008051602062001f738339815191528152601001604051809103902081565b60008084848462000a0962000f44565b600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101562000a5a57808201518382015260200162000a40565b50505050905090810190601f16801562000a885780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f080151562000aa657600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051600160a060020a03909116815260200160405180910390a18091505b509392505050565b600154600160a060020a031681565b60405160e060020a6362617365028152600401604051809103902081565b600062000b7b60405160ec60020a62061707028152600301604051809103902060405160008051602062001f73833981519152815260100160405180910390206040519182526020820152604090810190518091039020620005bf565b905090565b600062000bb38383600060405180591062000b985750595b818152601f19601f8301168101602001604052905062000bba565b9392505050565b60008084848462000a0962000f55565b600062000bd662000b1e565b600160a060020a031663fdef91068686868660006040516020015260405160e060020a63ffffffff8716028152600160a060020a0380861660048301908152908516602483015260448201849052608060648301908152909160840183818151815260200191508051906020019080838360005b8381101562000c6457808201518382015260200162000c4a565b50505050905090810190601f16801562000c925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b151562000cb457600080fd5b6102c65a03f1151562000cc657600080fd5b50505060405180519695505050505050565b600062000bb38383600060405180591062000cf05750595b818152601f19601f83011681016020016040529050620009f9565b6004541562000d1957600080fd5b62000d2362000ec9565b600455565b6000838360405191825260208201526040908101905190819003902060008181526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790559091508190849086907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290869051600160a060020a03909116815260200160405180910390a49392505050565b62000dd162000f32565b62000bb3838362000ecd565b60008084846040519182526020820152604090810190519081900390209150600160a060020a0383161562000ae95762000e1782620005bf565b9050600160a060020a0381161562000e4857600160a060020a038181169084161462000e4257600080fd5b62000ae9565b60008281526020819052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558290859087907fe944a7cdbc6cbd4bfe4713501567365bd379a9df5fd376422712b066d6e6b52290879051600160a060020a03909116815260200160405180910390a4509392505050565b4390565b62000ed762000f32565b600260405180591062000ee75750595b90808252806020026020018201604052509050828160008151811062000f0957fe5b60209081029091010152818160018151811062000f2257fe5b6020908102909101015292915050565b60206040519081016040526000815290565b6040516107fe8062000f6783390190565b60405161080e80620017658339019056006060604052341561000f57600080fd5b6040516107fe3803806107fe83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061017881026104901704565b9050600082511115610124576100958164010000000061048861024b82021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505061014660015461017864010000000002610490176401000000009004565b60028054600160a060020a031916600160a060020a03928316179081905516151561017057600080fd5b505050610253565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561022b57600080fd5b6102c65a03f1151561023c57600080fd5b50505060405180519392505050565b6000903b1190565b61059c806102626000396000f3006060604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d81146100f1578063178e6079146101165780632501269914610129578063756f60491461013c57806380afdea81461014f578063a3b4b07f14610162578063cbcc65eb14610175578063d4aae0c414610188578063daa3a163146101c4578063db8a61d4146101eb578063ea879634146101fe575b6100ef6100b961020d565b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610229945050505050565b005b34156100fc57600080fd5b610104610265565b60405190815260200160405180910390f35b341561012157600080fd5b610104610299565b341561013457600080fd5b6101046102cd565b341561014757600080fd5b610104610349565b341561015a57600080fd5b61010461037d565b341561016d57600080fd5b610104610383565b341561018057600080fd5b6101046103ff565b341561019357600080fd5b61019b610433565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101cf57600080fd5b6101d761044f565b604051901515815260200160405180910390f35b34156101f657600080fd5b610104610454565b341561020957600080fd5b61019b5b60025473ffffffffffffffffffffffffffffffffffffffff1690565b61023282610488565b151561023d57600080fd5b600080825160208401856127105a03f43d604051816000823e828015610261578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600090565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b1190565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b151561055057600080fd5b6102c65a03f1151561056157600080fd5b505050604051805193925050505600a165627a7a723058200255860a5062066c2137ab89f709aa105861f9563f96a13912cb3cc1399f6e1800296060604052341561000f57600080fd5b60405161080e38038061080e83398101604052808051919060200180519190602001805160008054600160a060020a031916600160a060020a0387161781556001859055920191849150839083906100738364010000000061013081026104e01704565b905060008251111561012457610095816401000000006105c061020382021704565b15156100a057600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100d55780820151838201526020016100bd565b50505050905090810190601f1680156101025780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561012457600080fd5b5050505050505061020b565b60008054600160a060020a03166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156101e357600080fd5b6102c65a03f115156101f457600080fd5b50505060405180519392505050565b6000903b1190565b6105f48061021a6000396000f3006060604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610124578063178e607914610149578063250126991461015c5780633bc7ebac1461016f578063756f6049146101ab57806380afdea8146101be578063a3b4b07f146101d1578063cbcc65eb146101e4578063d4aae0c4146101f7578063daa3a1631461020a578063db8a61d414610231578063ea87963414610244575b60006100c3610253565b905073ffffffffffffffffffffffffffffffffffffffff811615156100e757600080fd5b610121816000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610265945050505050565b50005b341561012f57600080fd5b6101376102a1565b60405190815260200160405180910390f35b341561015457600080fd5b6101376102d5565b341561016757600080fd5b610137610309565b341561017a57600080fd5b610182610385565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156101b657600080fd5b6101376103a1565b34156101c957600080fd5b6101376103d5565b34156101dc57600080fd5b6101376103db565b34156101ef57600080fd5b610137610457565b341561020257600080fd5b61018261048b565b341561021557600080fd5b61021d6104a7565b604051901515815260200160405180910390f35b341561023c57600080fd5b6101376104ac565b341561024f57600080fd5b6101825b60006102606001546104e0565b905090565b61026e826105c0565b151561027957600080fd5b600080825160208401856127105a03f43d604051816000823e82801561029d578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60645473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b60015481565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600190565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000805473ffffffffffffffffffffffffffffffffffffffff166342c71f1d6040517f6261736500000000000000000000000000000000000000000000000000000000815260040160405180910390208460405191825260208201526040908101905180910390206000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156105a057600080fd5b6102c65a03f115156105b157600080fd5b50505060405180519392505050565b6000903b11905600a165627a7a72305820597e1abde087b6f366fd67f8c476a61c6222e12bbf1690994055572e527bb4dc002961636c2e617261676f6e706d2e65746800000000000000000000000000000000a165627a7a72305820fda4f030ea9598f08942024336636d6e3349a8c4266b736d2edd8e354afe99930029", - "sourceMap": "228:4676:39:-;;;;;;;;;-1:-1:-1;;;228:4676:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:41;;;;;;;;;;;;;;;2831:92:39;;;;;;;;;;;;;;781:331;;;;;;;;;;-1:-1:-1;;;;;781:331:39;;;;;;;;;;;;57:58:41;;;;;;;;;;;;113:20:22;;;;;;;;;;;;1397:261:39;;;;;;;;;;;;-1:-1:-1;;;;;1397:261:39;;;;;269:107:26;;;;;;;;;;;;324:53:39;;;;;;;;;;;;1950:273;;;;;;;;;;;;-1:-1:-1;;;;;1950:273:39;;;;;492:75:41;;;;;;;;;;;;2464:212:39;;;;;;;;;;;;;;-1:-1:-1;;;;;2464:212:39;;;;;420:66:41;;;;;;;;;;;;796:272:35;;;;;;;;;;;;;-1:-1:-1;;;;;796:272:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;796:272:35;;-1:-1:-1;796:272:35;;-1:-1:-1;;;;;;796:272:35;86:21:22;;;;;;;;;;;;121:63:41;;;;;;;;;;;;3003:87:39;;;;;;;;;;;;176:157:35;;;;;;;;;;-1:-1:-1;;;;;176:157:35;;;;;;;339:281;;;;;;;;;;;;;-1:-1:-1;;;;;339:281:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;339:281:35;;-1:-1:-1;339:281:35;;-1:-1:-1;;;;;;339:281:35;3458:177:39;;;;;;;;;;-1:-1:-1;;;;;3458:177:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3458:177:39;;-1:-1:-1;3458:177:39;;-1:-1:-1;;;;;;3458:177:39;;;;;;;;;;;;;;;;;;626:164:35;;;;;;;;;;-1:-1:-1;;;;;626:164:35;;;;;;;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;-1:-1:-1;;;;;621:40:41;;:::o;2831:92:39:-;2881:7;2907:9;;;;;;;;;;;-1:-1:-1;;;;;2907:9:39;;2831:92::o;781:331::-;140:19:26;;898:8:39;;140:24:26;132:33;;;;;;874:13:39;:11;:13::i;:::-;914:29;926:4;457:29:41;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;914:11:39;:29::i;:::-;898:46;;955:50;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;996:8:39;955:7;:50::i;:::-;;1015:44;235:16:41;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;1055:3:39;1015:7;:44::i;:::-;-1:-1:-1;;;;;;1070:14:39;;;1085:19;1070:35;;-1:-1:-1;;;1070:35:39;;;;;;-1:-1:-1;;;;;1070:35:39;;;;;;;;;;-1:-1:-1;1070:35:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:331;;;:::o;57:58:41:-;98:17;;;;;;;;;;;;;;57:58;:::o;113:20:22:-;;;;:::o;1397:261:39:-;1526:18;375:1;1477:31;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;1502:5:39;1477:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;1556:50;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;1590:5:39;1597:8;1556:12;:50::i;:::-;;1627:24;1639:4;1645:5;1627:11;:24::i;:::-;1616:35;1397:261;-1:-1:-1;;;;;;;1397:261:39:o;269:107:26:-;350:19;;269:107;:::o;324:53:39:-;375:1;324:53;:::o;1950:273::-;2085:18;375:1;2036:31;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;2061:5:39;2036:3;:31::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;2115:50;167:17:41;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;2149:5:39;2156:8;2115:12;:50::i;:::-;;2186:30;2204:4;2210:5;2186:17;:30::i;492:75:41:-;235:16;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;2464:212:39:-;2608:10;375:1;2552:22;2556:10;2568:5;2552:3;:22::i;:::-;4363:16;;:::i;:::-;4389:18;4410:6;:13;4426:2;4410:18;4389:39;;4468:6;4461:13;;4517:10;4512:3;4505:6;4604:52;4618:10;4638:4;4645:5;4652:3;4604:13;:52::i;:::-;4596:61;;;;;;;;4762:14;4807:12;2637:32;2645:10;2657:5;2664:4;2637:7;:32::i;:::-;2630:39;;4779:18;98:17:41;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;4779:6:39;:18::i;:::-;4762:35;-1:-1:-1;;4848:11:39;;4893:1;4886:8;;4878:17;;;;;;4667:1;;2464:212;;;;;;;;;:::o;420:66:41:-;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;420:66;:::o;796:272:35:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;-1:-1:-1;;;;;947:55:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:35;;1012:27;1032:5;1012:27;;-1:-1:-1;;;;;1012:27:35;;;;;;;;;;;;;;;1056:5;1049:12;;796:272;;;;;;;:::o;86:21:22:-;;;-1:-1:-1;;;;;86:21:22;;:::o;121:63:41:-;167:17;;-1:-1:-1;;;;;167:17:41;;;;;;;;;;;121:63;:::o;3003:87:39:-;3039:4;3067:15;235:16:41;;-1:-1:-1;;;;;235:16:41;;;;;;;;;;;457:29;;-1:-1:-1;;;;;;;;;;;457:29:41;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;3067:6:39;:15::i;:::-;3055:28;;3003:87;:::o;176:157:35:-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;-1:-1:-1;;313:12:35;;;;;;;;;;;;284:11;:42::i;:::-;277:49;176:157;-1:-1:-1;;;176:157:35:o;339:281::-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;3458:177:39:-;3559:4;3582:5;:3;:5::i;:::-;-1:-1:-1;;;;;3582:19:39;;3602:4;3608:6;3616:5;3623:4;3582:46;;;;;;;;-1:-1:-1;;;3582:46:39;;;;;;-1:-1:-1;;;;;3582:46:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3458:177:39;-1:-1:-1;;;;;;3458:177:39:o;626:164:35:-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;-1:-1:-1;;770:12:35;;;;;;;;;;;;735:17;:48::i;487:96:26:-;140:19;;:24;132:33;;;;;;560:16;:14;:16::i;:::-;538:19;:38;487:96::o;3641:216:39:-;3725:10;3762;3774:5;3752:28;;;;;;;;;;;;;;;;;;;;;3790:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;3790:15:39;-1:-1:-1;;;;;3790:15:39;;;;;3752:28;;-1:-1:-1;3752:28:39;;3834:5;;3822:10;;3815:35;;3790:15;;3815:35;-1:-1:-1;;;;;3815:35:39;;;;;;;;;;;;;;;3641:216;;;;;:::o;222:126:17:-;282:11;;:::i;:::-;312:29;324:2;337;312:3;:29::i;3863:430:39:-;3952:10;4056:11;3989:10;4001:5;3979:28;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4022:18:39;;;4018:269;;4070:10;4077:2;4070:6;:10::i;:::-;4056:24;-1:-1:-1;;;;;;4098:17:39;;;4094:183;;-1:-1:-1;;;;;4143:11:39;;;;;;;4135:20;;;;;;4094:183;;;4194:4;:8;;;;;;;;;;;;:15;;-1:-1:-1;;4194:15:39;-1:-1:-1;;;;;4194:15:39;;;;;:8;;4246:5;;4234:10;;4227:35;;4194:15;;4227:35;-1:-1:-1;;;;;4227:35:39;;;;;;;;;;;;;;;3863:430;;;;;;:::o;767:94:26:-;842:12;767:94;:::o;1481:148:17:-;1541:11;;:::i;:::-;1582:1;1568:16;;;;;;;;;;;;;;;;;;;;;;;;1564:20;;1601:2;1594:1;1596;1594:4;;;;;;;;;;;;;;;;:9;1620:2;1613:1;1615;1613;:4;;;;;;;;;;;;;;;:9;1481:148;;-1:-1:-1;;1481:148:17:o;228:4676:39:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "1625200", - "executionCost": "1696", - "totalCost": "1626896" - }, - "external": { - "ACL_APP()": "infinite", - "ACL_APP_ID()": "infinite", - "APP_ADDR_NAMESPACE()": "401", - "APP_BASES_NAMESPACE()": "753", - "APP_MANAGER_ROLE()": "456", - "CORE_NAMESPACE()": "440", - "KERNEL_APP()": "529", - "KERNEL_APP_ID()": "308", - "acl()": "infinite", - "appId()": "590", - "apps(bytes32)": "733", - "getApp(bytes32)": "755", - "getInitializationBlock()": "634", - "hasPermission(address,address,bytes32,bytes)": "infinite", - "initialize(address,address)": "infinite", - "kernel()": "944", - "newAppInstance(bytes32,address)": "infinite", - "newAppProxy(address,bytes32)": "infinite", - "newAppProxy(address,bytes32,bytes)": "infinite", - "newAppProxyPinned(address,bytes32)": "infinite", - "newAppProxyPinned(address,bytes32,bytes)": "infinite", - "newPinnedAppInstance(bytes32,address)": "infinite", - "setApp(bytes32,bytes32,address)": "infinite" - }, - "internal": { - "_setApp(bytes32,bytes32,address)": "infinite", - "_setAppIfNew(bytes32,bytes32,address)": "infinite" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "APP_MANAGER_ROLE()": "8ea8dc9d", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "acl()": "de287359", - "appId()": "80afdea8", - "apps(bytes32)": "38bb6def", - "getApp(bytes32)": "42c71f1d", - "getInitializationBlock()": "8b3dd749", - "hasPermission(address,address,bytes32,bytes)": "fdef9106", - "initialize(address,address)": "485cc955", - "kernel()": "d4aae0c4", - "newAppInstance(bytes32,address)": "80cd5ac3", - "newAppProxy(address,bytes32)": "e156a8f3", - "newAppProxy(address,bytes32,bytes)": "ede658b0", - "newAppProxyPinned(address,bytes32)": "ff289fc5", - "newAppProxyPinned(address,bytes32,bytes)": "d162f8b0", - "newPinnedAppInstance(bytes32,address)": "958fde82", - "setApp(bytes32,bytes32,address)": "ae5b2540" - } - }, - "userdoc": { - "methods": { - "initialize(address,address)": { - "notice": "Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions" - } - } - } - } - }, - "@aragon/os/contracts/kernel/KernelProxy.sol": { - "KernelProxy": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "apps", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_kernelImpl", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6040516020806105c98339810160405280805191508190506000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051908190039020815260208101919091526040016000208054600160a060020a0392909216600160a060020a0319909216919091179055506104e5806100e46000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029", - "sourceMap": "95:717:40:-;;;419:126;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;419:126:40;;-1:-1:-1;478:4:40;;98:17:41;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;483:40:40;;;;;;;;;;;;;;;;;;;;;478:46;;;;;;;;;;;;;:60;;-1:-1:-1;;;;;478:60:40;;;;-1:-1:-1;;;;;;478:60:40;;;;;;;;;-1:-1:-1;95:717:40;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d811461017b578063178e6079146101a057806325012699146101b357806338bb6def146101c6578063756f604914610205578063a3b4b07f14610218578063cbcc65eb1461022b578063db8a61d41461023e575b6101796000806040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902060405191825260208201526040908101905180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f016020809104026020016040519081016040528181529291906020840183838082843750610251945050505050565b005b341561018657600080fd5b61018e61028d565b60405190815260200160405180910390f35b34156101ab57600080fd5b61018e6102c1565b34156101be57600080fd5b61018e6102f5565b34156101d157600080fd5b6101dc600435610371565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561021057600080fd5b61018e610399565b341561022357600080fd5b61018e6103cd565b341561023657600080fd5b61018e610449565b341561024957600080fd5b61018e61047d565b61025a826104b1565b151561026557600080fd5b600080825160208401856127105a03f43d604051816000823e828015610289578282f35b8282fd5b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f62617365000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6000903b11905600a165627a7a723058202894d47893bad9c133837e82be07e4ec51a7f4ee3b4ecb0a729c5240497147540029", - "sourceMap": "95:717:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:40;776:4;:16;98:17:41;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;776:16:40;;;;;;;;;;;;;;;;;;;;;;;;;;;794:8;;763:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;763:12:40;;-1:-1:-1;;;;;763:40:40:i;:::-;95:717;258:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;311:628:25;391:16;402:4;391:10;:16::i;:::-;383:25;;;;;;;;534:1;531;519:9;513:5;506:4;495:9;491:3;485:4;477:5;472:3;468;455:12;561:14;606:4;600:5;647:4;644:1;639:3;624:14;846:6;853:28;;;;916:4;911:3;904:6;853:28;874:4;869:3;862:6;258:72:41;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o;945:170:25:-;1005:4;1062:11;;1100:8;;945:170::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "250600", - "executionCost": "21071", - "totalCost": "271671" - }, - "external": { - "": "infinite", - "ACL_APP()": "infinite", - "ACL_APP_ID()": "infinite", - "APP_ADDR_NAMESPACE()": "infinite", - "APP_BASES_NAMESPACE()": "infinite", - "CORE_NAMESPACE()": "infinite", - "KERNEL_APP()": "infinite", - "KERNEL_APP_ID()": "infinite", - "apps(bytes32)": "infinite" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "apps(bytes32)": "38bb6def" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "@aragon/os/contracts/kernel/KernelStorage.sol": { - "KernelConstants": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6103468061001e6000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029", - "sourceMap": "26:544:41:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "6060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610087578063178e6079146100ac57806325012699146100bf578063756f6049146100d2578063a3b4b07f146100e5578063cbcc65eb146100f8578063db8a61d41461010b575b600080fd5b341561009257600080fd5b61009a61011e565b60405190815260200160405180910390f35b34156100b757600080fd5b61009a610152565b34156100ca57600080fd5b61009a610186565b34156100dd57600080fd5b61009a610202565b34156100f057600080fd5b61009a610236565b341561010357600080fd5b61009a6102b2565b341561011657600080fd5b61009a6102e6565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a7230582014d71f7869e1c0dfd619151bc2e8c85bd036f00365073c15c71ad8a4fa9507ea0029", - "sourceMap": "26:544:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "167600", - "executionCost": "209", - "totalCost": "167809" - }, - "external": { - "ACL_APP()": "510", - "ACL_APP_ID()": "355", - "APP_ADDR_NAMESPACE()": "267", - "APP_BASES_NAMESPACE()": "377", - "CORE_NAMESPACE()": "311", - "KERNEL_APP()": "466", - "KERNEL_APP_ID()": "245" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d" - } - }, - "userdoc": { - "methods": {} - } - }, - "KernelStorage": { - "abi": [ - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_ADDR_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "KERNEL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "apps", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CORE_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "ACL_APP_ID", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "APP_BASES_NAMESPACE", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": {} - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "6060604052341561000f57600080fd5b6103b88061001e6000396000f30060606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029", - "sourceMap": "573:91:41:-;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "60606040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631113ed0d8114610092578063178e6079146100b757806325012699146100ca57806338bb6def146100dd578063756f60491461011c578063a3b4b07f1461012f578063cbcc65eb14610142578063db8a61d414610155575b600080fd5b341561009d57600080fd5b6100a5610168565b60405190815260200160405180910390f35b34156100c257600080fd5b6100a561019c565b34156100d557600080fd5b6100a56101d0565b34156100e857600080fd5b6100f360043561024c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561012757600080fd5b6100a5610274565b341561013a57600080fd5b6100a56102a8565b341561014d57600080fd5b6100a5610324565b341561016057600080fd5b6100a5610358565b6040517f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152601301604051809103902081565b6040517f61707000000000000000000000000000000000000000000000000000000000008152600301604051809103902081565b6040517f636f726500000000000000000000000000000000000000000000000000000000815260040160405180910390206040517f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081526013016040518091039020604051918252602082015260409081019051809103902081565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040517f636f7265000000000000000000000000000000000000000000000000000000008152600401604051809103902081565b6040517f6170700000000000000000000000000000000000000000000000000000000000815260030160405180910390206040517f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081526010016040518091039020604051918252602082015260409081019051809103902081565b6040517f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152601001604051809103902081565b6040517f626173650000000000000000000000000000000000000000000000000000000081526004016040518091039020815600a165627a7a723058204d2856d471af02cd9bfd249b4c2eaafdd0bef99f1994ac38e1e056a9e6b3a0d10029", - "sourceMap": "573:91:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:72;;;;;;;;;;;;;;;;;;;;;;;;;;;190:61;;;;;;;;;;;;336:77;;;;;;;;;;;;621:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57:58;;;;;;;;;;;;492:75;;;;;;;;;;;;420:66;;;;;;;;;;;;121:63;;;;;;;;;;;;258:72;298:32;;;;;;;;;;;;;;258:72;:::o;190:61::-;235:16;;;;;;;;;;;;;;190:61;:::o;336:77::-;98:17;;;;;;;;;;;;;;298:32;;;;;;;;;;;;;;373:40;;;;;;;;;;;;;;;;;;;;336:77;:::o;621:40::-;;;;;;;;;;;;;;;;:::o;57:58::-;98:17;;;;;;;;;;;;;;57:58;:::o;492:75::-;235:16;;;;;;;;;;;;;;457:29;;;;;;;;;;;;;;526:41;;;;;;;;;;;;;;;;;;;;492:75;:::o;420:66::-;457:29;;;;;;;;;;;;;;420:66;:::o;121:63::-;167:17;;;;;;;;;;;;;;121:63;:::o" - }, - "gasEstimates": { - "creation": { - "codeDepositCost": "190400", - "executionCost": "227", - "totalCost": "190627" - }, - "external": { - "ACL_APP()": "532", - "ACL_APP_ID()": "377", - "APP_ADDR_NAMESPACE()": "267", - "APP_BASES_NAMESPACE()": "399", - "CORE_NAMESPACE()": "333", - "KERNEL_APP()": "466", - "KERNEL_APP_ID()": "245", - "apps(bytes32)": "529" - } - }, - "methodIdentifiers": { - "ACL_APP()": "a3b4b07f", - "ACL_APP_ID()": "cbcc65eb", - "APP_ADDR_NAMESPACE()": "178e6079", - "APP_BASES_NAMESPACE()": "db8a61d4", - "CORE_NAMESPACE()": "756f6049", - "KERNEL_APP()": "25012699", - "KERNEL_APP_ID()": "1113ed0d", - "apps(bytes32)": "38bb6def" - } - }, - "userdoc": { - "methods": {} - } - } - }, - "giveth-common-contracts/contracts/ERC20.sol": { - "ERC20": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "supply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "Returns the amount which _spender is still allowed to withdraw from _owner" - }, - "approve(address,uint256)": { - "details": "Allows _spender to withdraw from the msg.sender's account up to the _value amount" - }, - "balanceOf(address)": { - "details": "Returns the account balance of the account with address _owner" - }, - "totalSupply()": { - "details": "Returns the total token supply" - }, - "transfer(address,uint256)": { - "details": "Transfers _value number of tokens to address _to" - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers _value number of tokens from address _from to address _to" - } - }, - "title": "ERC20" - }, - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "", - "sourceMap": "" - }, - "gasEstimates": null, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "userdoc": { - "methods": {} - } - } - } - }, - "errors": [ - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleProjectPlugin.sol:14:5: Warning: No visibility specified. Defaulting to \"public\".\n function TestSimpleProjectPlugin() {\n ^\nSpanning multiple lines.\n", - "message": "No visibility specified. Defaulting to \"public\".", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleProjectPlugin.sol:19:5: Warning: No visibility specified. Defaulting to \"public\".\n function init(\n ^\nSpanning multiple lines.\n", - "message": "No visibility specified. Defaulting to \"public\".", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleProjectPluginFactory.sol:9:5: Warning: No visibility specified. Defaulting to \"public\".\n function deploy(\n ^\nSpanning multiple lines.\n", - "message": "No visibility specified. Defaulting to \"public\".", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:41:25: Warning: The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n let size := returndatasize\n ^------------^\n", - "message": "The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:47:17: Warning: The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n returndatacopy(ret, 0x20, sub(size, 0x20)) // copy return data\n ^------------^\n", - "message": "The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/common/DelegateProxy.sol:14:25: Warning: The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n let size := returndatasize\n ^------------^\n", - "message": "The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/common/DelegateProxy.sol:17:13: Warning: The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n returndatacopy(ptr, 0, size)\n ^------------^\n", - "message": "The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:56:25: Warning: The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n let size := returndatasize\n ^------------^\n", - "message": "The \"returndatasize\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:60:13: Warning: The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.\n returndatacopy(add(ret, 0x20), 0, size) // copy return data\n ^------------^\n", - "message": "The \"returndatacopy\" instruction is only available after the Metropolis hard fork. Before that it acts as an invalid instruction.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/acl/ACLSyntaxSugar.sol:5:43: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n function arr() internal pure returns (uint256[] r) {}\n ^---------^\n", - "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/executors/CallsScript.sol:24:40: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n function execScript(bytes _script, bytes _input, address[] _blacklist) external returns (bytes) {\n ^----------^\n", - "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleDelegatePlugin.sol:37:25: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n ) external returns (uint maxAllowed) {\n ^-------------^\n", - "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "./contracts/test/TestSimpleProjectPlugin.sol:36:25: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n ) external returns (uint maxAllowed) {\n ^-------------^\n", - "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/EVMScriptRunner.sol:39:5: Warning: Function state mutability can be restricted to pure\n function returnedDataDecoded() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", - "message": "Function state mutability can be restricted to pure", - "severity": "warning", - "type": "Warning" - }, - { - "component": "general", - "formattedMessage": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol:54:5: Warning: Function state mutability can be restricted to pure\n function returnedData() internal view returns (bytes ret) {\n ^\nSpanning multiple lines.\n", - "message": "Function state mutability can be restricted to pure", - "severity": "warning", - "type": "Warning" - } - ], - "sources": { - "./contracts/EscapableApp.sol": { - "id": 0 - }, - "./contracts/ILiquidPledgingPlugin.sol": { - "id": 1 - }, - "./contracts/LPConstants.sol": { - "id": 2 - }, - "./contracts/LPFactory.sol": { - "id": 3 - }, - "./contracts/LPVault.sol": { - "id": 4 - }, - "./contracts/LiquidPledging.sol": { - "id": 5 - }, - "./contracts/LiquidPledgingACLHelpers.sol": { - "id": 6 - }, - "./contracts/LiquidPledgingBase.sol": { - "id": 7 - }, - "./contracts/LiquidPledgingMock.sol": { - "id": 8 - }, - "./contracts/LiquidPledgingPlugins.sol": { - "id": 9 - }, - "./contracts/LiquidPledgingStorage.sol": { - "id": 10 - }, - "./contracts/PledgeAdmins.sol": { - "id": 11 - }, - "./contracts/Pledges.sol": { - "id": 12 - }, - "./contracts/test/TestSimpleDelegatePlugin.sol": { - "id": 13 - }, - "./contracts/test/TestSimpleProjectPlugin.sol": { - "id": 14 - }, - "./contracts/test/TestSimpleProjectPluginFactory.sol": { - "id": 15 - }, - "@aragon/os/contracts/acl/ACL.sol": { - "id": 16 - }, - "@aragon/os/contracts/acl/ACLSyntaxSugar.sol": { - "id": 17 - }, - "@aragon/os/contracts/acl/IACL.sol": { - "id": 18 - }, - "@aragon/os/contracts/apps/AppProxyBase.sol": { - "id": 19 - }, - "@aragon/os/contracts/apps/AppProxyPinned.sol": { - "id": 20 - }, - "@aragon/os/contracts/apps/AppProxyUpgradeable.sol": { - "id": 21 - }, - "@aragon/os/contracts/apps/AppStorage.sol": { - "id": 22 - }, - "@aragon/os/contracts/apps/AragonApp.sol": { - "id": 23 - }, - "@aragon/os/contracts/apps/IAppProxy.sol": { - "id": 24 - }, - "@aragon/os/contracts/common/DelegateProxy.sol": { - "id": 25 - }, - "@aragon/os/contracts/common/Initializable.sol": { - "id": 26 - }, - "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol": { - "id": 27 - }, - "@aragon/os/contracts/evmscript/EVMScriptRunner.sol": { - "id": 28 - }, - "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol": { - "id": 29 - }, - "@aragon/os/contracts/evmscript/IEVMScriptRegistry.sol": { - "id": 30 - }, - "@aragon/os/contracts/evmscript/ScriptHelpers.sol": { - "id": 31 - }, - "@aragon/os/contracts/evmscript/executors/CallsScript.sol": { - "id": 32 - }, - "@aragon/os/contracts/evmscript/executors/DelegateScript.sol": { - "id": 33 - }, - "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol": { - "id": 34 - }, - "@aragon/os/contracts/factory/AppProxyFactory.sol": { - "id": 35 - }, - "@aragon/os/contracts/factory/DAOFactory.sol": { - "id": 36 - }, - "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol": { - "id": 37 - }, - "@aragon/os/contracts/kernel/IKernel.sol": { - "id": 38 - }, - "@aragon/os/contracts/kernel/Kernel.sol": { - "id": 39 - }, - "@aragon/os/contracts/kernel/KernelProxy.sol": { - "id": 40 - }, - "@aragon/os/contracts/kernel/KernelStorage.sol": { - "id": 41 - }, - "giveth-common-contracts/contracts/ERC20.sol": { - "id": 42 - } - } -} \ No newline at end of file From 685750d1b2e9d2e5edb7acd2a7a4b87e4c41eb61 Mon Sep 17 00:00:00 2001 From: perissology Date: Tue, 24 Apr 2018 13:39:58 -0700 Subject: [PATCH 50/52] fix contract export issue & make tests use exported contracts --- contracts/LiquidPledgingMock.sol | 2 - index.js | 36 +- package.json | 19 +- test/AdminPlugins.js | 78 +++-- test/CancelPledge.js | 51 ++- test/DelegationChain.js | 38 +- test/NormalOperation.js | 171 ++++++--- test/NormalizePledge.js | 41 ++- test/Vault.js | 120 ++++--- test/helpers/gasLogger.js | 12 + yarn.lock | 578 ++++++++++++++++++++++++++++++- 11 files changed, 914 insertions(+), 232 deletions(-) create mode 100644 test/helpers/gasLogger.js diff --git a/contracts/LiquidPledgingMock.sol b/contracts/LiquidPledgingMock.sol index 058d184..be17034 100644 --- a/contracts/LiquidPledgingMock.sol +++ b/contracts/LiquidPledgingMock.sol @@ -18,8 +18,6 @@ pragma solidity ^0.4.11; */ import "./LiquidPledging.sol"; -// hack so that solcpiler will generate a contracts.Kernel object -import "@aragon/os/contracts/kernel/Kernel.sol"; /// @dev `LiquidPledgingMock` allows for mocking up /// a `LiquidPledging` contract with the added ability diff --git a/index.js b/index.js index 77575d5..8596e52 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,30 @@ -const contracts = require('./build/contracts'); -exports.LiquidPledging = contracts.LiquidPledging; -exports.LiquidPledgingState = require('./lib/liquidPledgingState.js'); -exports.LPVault = contracts.LPVault; -exports.LPFactory = contracts.LPFactory; -exports.test = { - StandardTokenTest: contracts.StandardToken, +const contractInfo = require('./build/LPFactory.sol'); +const LiquidPledgingMockInfo = require('./build/LiquidPledgingMock.sol'); +const LPVaultInfo = require('./build/LPVault.sol'); +const StandardTokenInfo = require('./build/StandardToken.sol'); +const KernelInfo = require('./build/Kernel.sol'); +const ACLInfo = require('./build/ACL.sol'); +const generateClass = require('eth-contract-class').default; + +module.exports = { + LiquidPledging: generateClass( + contractInfo.LiquidPledgingAbi, + contractInfo.LiquidPledgingByteCode, + ), + LPFactory: generateClass(contractInfo.LPFactoryAbi, contractInfo.LPFactoryByteCode), + LiquidPledgingState: require('./lib/liquidPledgingState.js'), + LPVault: generateClass(contractInfo.LPVaultAbi, contractInfo.LPVaultByteCode), + Kernel: generateClass(KernelInfo.KernelAbi, KernelInfo.KernelByteCode), + ACL: generateClass(ACLInfo.ACLAbi, ACLInfo.ACLByteCode), + test: { + StandardTokenTest: generateClass( + StandardTokenInfo.StandardTokenAbi, + StandardTokenInfo.StandardTokenByteCode, + ), assertFail: require('./test/helpers/assertFail'), - LiquidPledgingMock: contracts.LiquidPledgingMock, + LiquidPledgingMock: generateClass( + LiquidPledgingMockInfo.LiquidPledgingMockAbi, + LiquidPledgingMockInfo.LiquidPledgingMockByteCode, + ), + }, }; diff --git a/package.json b/package.json index 7d099c5..b10c673 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "giveth-liquidpledging", - "version": "0.1.0", + "version": "0.1.1", "description": "Liquid Pledging Smart Contract", "main": "index.js", "directories": { @@ -9,7 +9,8 @@ }, "scripts": { "test": "npm run build; mocha --harmony", - "sol-compile": "solcpiler --solc-version v0.4.18+commit.9cf6e910", + "sol-compile": + "solcpiler --solc-version v0.4.18+commit.9cf6e910 -i './contracts/**/*.sol' ./node_modules/@aragon/os/contracts/{kernel/Kernel.sol,acl/ACL.sol}", "js-compile": "babel -d lib/ js/", "build": "npm run sol-compile; npm run js-compile", "prepublish": "npm run build" @@ -18,15 +19,7 @@ "type": "git", "url": "git+https://github.com/Giveth/liquidpledging.git" }, - "keywords": [ - "liquid", - "pledging", - "tracking", - "smart", - "contract", - "solidity", - "donation" - ], + "keywords": ["liquid", "pledging", "tracking", "smart", "contract", "solidity", "donation"], "author": "Jordi Baylina", "license": "GPL-3.0", "bugs": { @@ -44,7 +37,7 @@ "lerna": "^2.2.0", "mocha": "^3.5.0", "random-bytes": "^1.0.0", - "solcpiler": "https://github.com/perissology/solcpiler.git#9862d1f", + "solcpiler": "https://github.com/perissology/solcpiler.git#6393e66", "web3": "1.0.0-beta.31" }, "homepage": "https://github.com/Giveth/liquidpledging#readme", @@ -52,7 +45,7 @@ "@aragon/os": "3.0.1", "async": "^2.4.0", "chai": "^4.1.0", - "eth-contract-class": "0.0.6", + "eth-contract-class": "0.0.8", "giveth-common-contracts": "^0.4.0" } } diff --git a/test/AdminPlugins.js b/test/AdminPlugins.js index e37ac82..acd53a8 100644 --- a/test/AdminPlugins.js +++ b/test/AdminPlugins.js @@ -1,23 +1,31 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require("ganache-cli"); +const TestRPC = require('ganache-cli'); const Web3 = require('web3'); const chai = require('chai'); -const assertFail = require('./helpers/assertFail'); -const contracts = require("../build/contracts.js"); -const LiquidPledgingState = require('../index').LiquidPledgingState; +const { + LPVault, + LPFactory, + LiquidPledgingState, + test, +} = require('../index'); -const simpleProjectPluginFactoryAbi = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginFactoryAbi; -const simpleProjectPluginFactoryByteCode = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginFactoryByteCode; -const simpleProjectPluginRuntimeByteCode = require('../build/TestSimpleProjectPluginFactory.sol').TestSimpleProjectPluginRuntimeByteCode; +const simpleProjectPluginFactoryAbi = require('../build/TestSimpleProjectPluginFactory.sol') + .TestSimpleProjectPluginFactoryAbi; +const simpleProjectPluginFactoryByteCode = require('../build/TestSimpleProjectPluginFactory.sol') + .TestSimpleProjectPluginFactoryByteCode; +const simpleProjectPluginRuntimeByteCode = require('../build/TestSimpleProjectPluginFactory.sol') + .TestSimpleProjectPluginRuntimeByteCode; const assert = chai.assert; -const printState = async (liquidPledgingState) => { +const { StandardTokenTest, assertFail, LiquidPledgingMock } = test; + +const printState = async liquidPledgingState => { const st = await liquidPledgingState.getState(); console.log(JSON.stringify(st, null, 2)); }; -describe('LiquidPledging plugins test', function () { +describe('LiquidPledging plugins test', function() { this.timeout(0); let testrpc; @@ -46,57 +54,63 @@ describe('LiquidPledging plugins test', function () { adminDelegate1 = accounts[3]; }); - after((done) => { + after(done => { testrpc.close(); done(); }); - it('Should deploy LiquidPledging contract', async function () { - const baseVault = await contracts.LPVault.new(web3, accounts[0]); - const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); - lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); + it('Should deploy LiquidPledging contract', async function() { + const baseVault = await LPVault.new(web3, accounts[0]); + const baseLP = await LiquidPledgingMock.new(web3, accounts[0]); + lpFactory = await LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); const vaultAddress = r.events.DeployVault.returnValues.vault; - vault = new contracts.LPVault(web3, vaultAddress); + vault = new LPVault(web3, vaultAddress); const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; - liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); + liquidPledging = new LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); - token = await contracts.StandardToken.new(web3); + token = await StandardTokenTest.new(web3); await token.mint(giver1, web3.utils.toWei('1000')); - await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); + await token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver1 }); }); - it('Should create create giver with no plugin', async function () { + it('Should create create giver with no plugin', async function() { await liquidPledging.addGiver('Giver1', '', 0, '0x0', { from: adminProject1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 1); }); - it('Should fail to create giver with invalid plugin', async function () { + it('Should fail to create giver with invalid plugin', async function() { await assertFail( - liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1, gas: 4000000 }) + liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1, gas: 4000000 }), ); }); - it('Should fail to create delegate with invalid plugin', async function () { + it('Should fail to create delegate with invalid plugin', async function() { await assertFail( - liquidPledging.addDelegate('delegate1', '', 0, liquidPledging.$address, { from: adminDelegate1, gas: 4000000 }) + liquidPledging.addDelegate('delegate1', '', 0, liquidPledging.$address, { + from: adminDelegate1, + gas: 4000000, + }), ); }); - it('Should fail to create project with invalid plugin', async function () { + it('Should fail to create project with invalid plugin', async function() { await assertFail( - liquidPledging.addProject('Project1', '', giver1, 0, 0, vault.$address, { from: adminProject1, gas: 4000000 }) + liquidPledging.addProject('Project1', '', giver1, 0, 0, vault.$address, { + from: adminProject1, + gas: 4000000, + }), ); }); - it('Should deploy TestSimpleProjectPlugin and add project', async function () { + it('Should deploy TestSimpleProjectPlugin and add project', async function() { // add plugin as valid plugin const codeHash = web3.utils.soliditySha3(simpleProjectPluginRuntimeByteCode); await liquidPledging.addValidPluginContract(codeHash, { $extraGas: 200000 }); @@ -105,19 +119,20 @@ describe('LiquidPledging plugins test', function () { const factoryContract = await new web3.eth.Contract(simpleProjectPluginFactoryAbi) .deploy({ data: simpleProjectPluginFactoryByteCode, - arguments: [] - }).send({ from: adminProject1, gas: 5000000 }); + arguments: [], + }) + .send({ from: adminProject1, gas: 5000000 }); factoryContract.setProvider(web3.currentProvider); await factoryContract.methods - .deploy(liquidPledging.$address, "SimplePlugin1", "", 0) - .send({ from: adminProject1, gas: 5000000 }) + .deploy(liquidPledging.$address, 'SimplePlugin1', '', 0) + .send({ from: adminProject1, gas: 5000000 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); }); - it('Should allow all plugins', async function () { + it('Should allow all plugins', async function() { await liquidPledging.useWhitelist(false, { $extraGas: 200000 }); await liquidPledging.addGiver('Giver2', '', 0, vault.$address, { from: giver1 }); @@ -126,4 +141,3 @@ describe('LiquidPledging plugins test', function () { assert.equal(nAdmins, 3); }); }); - diff --git a/test/CancelPledge.js b/test/CancelPledge.js index b29e8ca..117ed73 100644 --- a/test/CancelPledge.js +++ b/test/CancelPledge.js @@ -1,20 +1,18 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require("ganache-cli"); +const TestRPC = require('ganache-cli'); const Web3 = require('web3'); -const chai = require('chai'); -const assertFail = require('./helpers/assertFail'); -const contracts = require("../build/contracts.js"); -const LiquidPledgingState = require('../index').LiquidPledgingState; +const { assert } = require('chai'); +const { LPVault, LPFactory, LiquidPledgingState, test } = require('../index'); -const assert = chai.assert; +const { StandardTokenTest, assertFail, LiquidPledgingMock } = test; -const printState = async (liquidPledgingState) => { +const printState = async liquidPledgingState => { const st = await liquidPledgingState.getState(); console.log(JSON.stringify(st, null, 2)); }; -describe('LiquidPledging cancelPledge normal scenario', function () { +describe('LiquidPledging cancelPledge normal scenario', function() { this.timeout(0); let testrpc; @@ -38,38 +36,40 @@ describe('LiquidPledging cancelPledge normal scenario', function () { web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); - giver1 = accounts[ 1 ]; - adminProject1 = accounts[ 2 ]; - adminProject2 = accounts[ 3 ]; + giver1 = accounts[1]; + adminProject1 = accounts[2]; + adminProject2 = accounts[3]; }); - after((done) => { + after(done => { testrpc.close(); done(); }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3, accounts[0]); - const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); - lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); + const baseVault = await LPVault.new(web3, accounts[0]); + const baseLP = await LiquidPledgingMock.new(web3, accounts[0]); + lpFactory = await LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); const vaultAddress = r.events.DeployVault.returnValues.vault; - vault = new contracts.LPVault(web3, vaultAddress); + vault = new LPVault(web3, vaultAddress); const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; - liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); + liquidPledging = new LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); - token = await contracts.StandardToken.new(web3); + token = await StandardTokenTest.new(web3); await token.mint(giver1, web3.utils.toWei('1000')); - await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); + await token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver1 }); }); it('Should add project and donate ', async () => { - await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, '0x0', { from: adminProject1 }); + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, '0x0', { + from: adminProject1, + }); await liquidPledging.addGiverAndDonate(1, token.$address, 1000, { from: giver1 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -77,9 +77,7 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should only allow pledge owner to cancel pledge', async () => { - await assertFail( - liquidPledging.cancelPledge(2, 1000, { from: giver1, gas: 4000000 }) - ); + await assertFail(liquidPledging.cancelPledge(2, 1000, { from: giver1, gas: 4000000 })); }); it('Should cancel pledge and return to oldPledge', async () => { @@ -92,9 +90,6 @@ describe('LiquidPledging cancelPledge normal scenario', function () { }); it('Should not allow to cancel pledge if oldPledge === 0', async () => { - await assertFail( - liquidPledging.cancelPledge(1, 1000, { from: giver1, gas: 4000000 }) - ); - }) + await assertFail(liquidPledging.cancelPledge(1, 1000, { from: giver1, gas: 4000000 })); + }); }); - diff --git a/test/DelegationChain.js b/test/DelegationChain.js index 0409693..7696a27 100644 --- a/test/DelegationChain.js +++ b/test/DelegationChain.js @@ -1,20 +1,18 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require("ganache-cli"); +const TestRPC = require('ganache-cli'); const Web3 = require('web3'); -const chai = require('chai'); -const contracts = require("../build/contracts.js"); -const LiquidPledgingState = require('../index').LiquidPledgingState; +const { assert } = require('chai'); +const { LPVault, LPFactory, LiquidPledgingState, test } = require('../index'); -const assertFail = require('./helpers/assertFail'); -const assert = chai.assert; +const { StandardTokenTest, assertFail, LiquidPledgingMock } = test; -const printState = async (liquidPledgingState) => { +const printState = async liquidPledgingState => { const st = await liquidPledgingState.getState(); console.log(JSON.stringify(st, null, 2)); }; -describe('DelegationChain test', function () { +describe('DelegationChain test', function() { this.timeout(0); let testrpc; @@ -50,29 +48,29 @@ describe('DelegationChain test', function () { giver2 = accounts[6]; }); - after((done) => { + after(done => { testrpc.close(); done(); }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3, accounts[0]); - const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); - lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); + const baseVault = await LPVault.new(web3, accounts[0]); + const baseLP = await LiquidPledgingMock.new(web3, accounts[0]); + lpFactory = await LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); const vaultAddress = r.events.DeployVault.returnValues.vault; - vault = new contracts.LPVault(web3, vaultAddress); + vault = new LPVault(web3, vaultAddress); const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; - liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); + liquidPledging = new LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); - token = await contracts.StandardToken.new(web3); + token = await StandardTokenTest.new(web3); await token.mint(giver1, web3.utils.toWei('1000')); - await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); + await token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver1 }); }); it('Should add pledgeAdmins', async () => { @@ -80,7 +78,9 @@ describe('DelegationChain test', function () { await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 259200, 0, { from: delegate1 }); // pledgeAdmin 2 await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); // pledgeAdmin 3 await liquidPledging.addDelegate('Delegate3', 'URLDelegate3', 0, 0, { from: delegate3 }); // pledgeAdmin 4 - await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { from: adminProject1 }); // pledgeAdmin 5 + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { + from: adminProject1, + }); // pledgeAdmin 5 await liquidPledging.addGiver('Giver2', 'URLGiver2', 0, 0, { from: giver2 }); // pledgeAdmin 6 const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -192,7 +192,7 @@ describe('DelegationChain test', function () { assert.equal(pledge.commitTime, now + 259200); // 259200 is longest commitTime in delegationChain }); - it('delegation chain should remain the same when owner veto\'s delegation', async () => { + it("delegation chain should remain the same when owner veto's delegation", async () => { // owner veto delegation to project1 await liquidPledging.transfer(1, 8, 1000, 3, { from: giver1, $extraGas: 200000 }); @@ -204,7 +204,7 @@ describe('DelegationChain test', function () { assert.equal(st.pledges[3].delegates[1].id, 3); }); - it('delegation chain should remain the same upto delegate of reciever when owner veto\'s delegation', async () => { + it("delegation chain should remain the same upto delegate of reciever when owner veto's delegation", async () => { // propose project1 delegation await liquidPledging.transfer(3, 3, 1000, 5, { from: delegate2, $extraGas: 200000 }); // owner veto delegation to project1 and remove delegate2 diff --git a/test/NormalOperation.js b/test/NormalOperation.js index 49c835c..299157f 100644 --- a/test/NormalOperation.js +++ b/test/NormalOperation.js @@ -2,22 +2,18 @@ /* eslint-disable no-await-in-loop */ const TestRPC = require('ganache-cli'); const Web3 = require('web3'); -const chai = require('chai'); -const assertFail = require('./helpers/assertFail'); -const contracts = require("../build/contracts.js"); +const { assert } = require('chai'); +const { LPVault, LPFactory, LiquidPledgingState, Kernel, ACL, test } = require('../index'); +const { StandardTokenTest, assertFail, LiquidPledgingMock } = test; const { utils } = Web3; -const LiquidPledgingState = require('../index').LiquidPledgingState; -const assert = chai.assert; - - -const printState = async (liquidPledgingState) => { +const printState = async liquidPledgingState => { const st = await liquidPledgingState.getState(); console.log(JSON.stringify(st, null, 2)); }; -describe('LiquidPledging test', function () { +describe('LiquidPledging test', function() { this.timeout(0); let testrpc; let web3; @@ -61,15 +57,17 @@ describe('LiquidPledging test', function () { escapeHatchCaller = accounts[10]; }); - after((done) => { + after(done => { testrpc.close(); done(); }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3, escapeHatchDestination); - const baseLP = await contracts.LiquidPledgingMock.new(web3, escapeHatchDestination, {gas: 6700000}); - lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); + const baseVault = await LPVault.new(web3, escapeHatchDestination); + const baseLP = await LiquidPledgingMock.new(web3, escapeHatchDestination, { + gas: 6700000, + }); + lpFactory = await LPFactory.new(web3, baseVault.$address, baseLP.$address); assert.isAbove(Number(await baseVault.getInitializationBlock()), 0); assert.isAbove(Number(await baseLP.getInitializationBlock()), 0); @@ -77,29 +75,51 @@ describe('LiquidPledging test', function () { const r = await lpFactory.newLP(accounts[0], escapeHatchDestination); const vaultAddress = r.events.DeployVault.returnValues.vault; - vault = new contracts.LPVault(web3, vaultAddress); + vault = new LPVault(web3, vaultAddress); const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; - liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); + liquidPledging = new LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); // set permissions - const kernel = new contracts.Kernel(web3, await liquidPledging.kernel()); - acl = new contracts.ACL(web3, await kernel.acl()); - await acl.createPermission(accounts[0], vault.$address, await vault.CANCEL_PAYMENT_ROLE(), accounts[0], {$extraGas: 200000}); - await acl.createPermission(accounts[0], vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), accounts[0], {$extraGas: 200000}); - await acl.grantPermission(escapeHatchCaller, vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); - await acl.revokePermission(accounts[0], vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); + const kernel = new Kernel(web3, await liquidPledging.kernel()); + acl = new ACL(web3, await kernel.acl()); + await acl.createPermission( + accounts[0], + vault.$address, + await vault.CANCEL_PAYMENT_ROLE(), + accounts[0], + { $extraGas: 200000 }, + ); + await acl.createPermission( + accounts[0], + vault.$address, + await vault.CONFIRM_PAYMENT_ROLE(), + accounts[0], + { $extraGas: 200000 }, + ); + await acl.grantPermission( + escapeHatchCaller, + vault.$address, + await vault.ESCAPE_HATCH_CALLER_ROLE(), + { $extraGas: 200000 }, + ); + await acl.revokePermission( + accounts[0], + vault.$address, + await vault.ESCAPE_HATCH_CALLER_ROLE(), + { $extraGas: 200000 }, + ); - giver1Token = await contracts.StandardToken.new(web3); - giver2Token = await contracts.StandardToken.new(web3); + giver1Token = await StandardTokenTest.new(web3); + giver2Token = await StandardTokenTest.new(web3); await giver1Token.mint(giver1, web3.utils.toWei('1000')); await giver2Token.mint(giver2, web3.utils.toWei('1000')); - await giver1Token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", {from: giver1}); - await giver2Token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", {from: giver2}); + await giver1Token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver1 }); + await giver2Token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver2 }); }); it('Should create a giver', async () => { await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1, gas: 1000000 }); @@ -114,7 +134,10 @@ describe('LiquidPledging test', function () { assert.equal(res[4], 86400); }); it('Should make a donation', async () => { - const r = await liquidPledging.donate(1, 1, giver1Token.$address, utils.toWei('1'), { from: giver1, $extraGas: 100000 }); + const r = await liquidPledging.donate(1, 1, giver1Token.$address, utils.toWei('1'), { + from: giver1, + $extraGas: 100000, + }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 1); const p = await liquidPledging.getPledge(1); @@ -122,8 +145,8 @@ describe('LiquidPledging test', function () { assert.equal(p.owner, 1); const vaultBal = await giver1Token.balanceOf(vault.$address); const giver1Bal = await giver1Token.balanceOf(giver1); - assert.equal(vaultBal, web3.utils.toWei('1')) - assert.equal(giver1Bal, web3.utils.toWei('999')) + assert.equal(vaultBal, web3.utils.toWei('1')); + assert.equal(giver1Bal, web3.utils.toWei('999')); }); it('Should create a delegate', async () => { await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 0, 0, { from: delegate1 }); @@ -152,7 +175,9 @@ describe('LiquidPledging test', function () { assert.equal(d[2], 'Delegate1'); }); it('Should create a 2 projects', async () => { - await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 86400, 0, { from: adminProject1 }); + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 86400, 0, { + from: adminProject1, + }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 3); @@ -165,7 +190,9 @@ describe('LiquidPledging test', function () { assert.equal(res[5], 0); assert.equal(res[6], false); - await liquidPledging.addProject('Project2', 'URLProject2', adminProject2, 0, 86400, 0, { from: adminProject2 }); + await liquidPledging.addProject('Project2', 'URLProject2', adminProject2, 0, 86400, 0, { + from: adminProject2, + }); const nAdmins2 = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins2, 4); @@ -210,7 +237,7 @@ describe('LiquidPledging test', function () { }); it('After the time, the project1 should be able to spend part of it', async () => { const n = Math.floor(new Date().getTime() / 1000); - await liquidPledging.setMockedTime(n + 86401, {$extraGas: 100000}); + await liquidPledging.setMockedTime(n + 86401, { $extraGas: 100000 }); await liquidPledging.withdraw(3, utils.toWei('0.05'), { from: adminProject1 }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(nPledges, 6); @@ -236,7 +263,7 @@ describe('LiquidPledging test', function () { it('Should collect the token', async () => { const initialBalance = await giver1Token.balanceOf(adminProject1); - await vault.confirmPayment(0, {$extraGas: 200000}); + await vault.confirmPayment(0, { $extraGas: 200000 }); const finalBalance = await giver1Token.balanceOf(adminProject1); const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); @@ -265,11 +292,14 @@ describe('LiquidPledging test', function () { assert.equal(utils.fromWei(p.amount), 0.05); await assertFail( - liquidPledging.withdraw(5, utils.toWei('0.01'), { from: adminProject1, gas: 4000000 }) + liquidPledging.withdraw(5, utils.toWei('0.01'), { from: adminProject1, gas: 4000000 }), ); }); it('Delegate should send part of this ETH to project2', async () => { - await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, {from: delegate1, $extraGas: 100000}); + await liquidPledging.transfer(2, 5, utils.toWei('0.03'), 4, { + from: delegate1, + $extraGas: 100000, + }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[8].amount), 0.03); @@ -279,27 +309,38 @@ describe('LiquidPledging test', function () { assert.equal(st.pledges[8].intendedProject, 4); }); it('Giver should be able to send the remaining to project2', async () => { - await liquidPledging.transfer(1, 5, utils.toWei('0.02'), 4, { from: giver1, $extraGas: 100000 }); + await liquidPledging.transfer(1, 5, utils.toWei('0.02'), 4, { + from: giver1, + $extraGas: 100000, + }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 9); assert.equal(utils.fromWei(st.pledges[5].amount), 0); assert.equal(utils.fromWei(st.pledges[4].amount), 0.12); }); it('A subproject 2a and a delegate2 is created', async () => { - await liquidPledging.addProject('Project2a', 'URLProject2a', adminProject2a, 4, 86400, 0, { from: adminProject2 }); + await liquidPledging.addProject('Project2a', 'URLProject2a', adminProject2a, 4, 86400, 0, { + from: adminProject2, + }); await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 6); }); it('Project 2 delegate in delegate2', async () => { - await liquidPledging.transfer(4, 4, utils.toWei('0.02'), 6, { from: adminProject2, $extraGas: 200000 }); + await liquidPledging.transfer(4, 4, utils.toWei('0.02'), 6, { + from: adminProject2, + $extraGas: 200000, + }); const st = await liquidPledgingState.getState(); assert.equal(st.pledges.length, 10); assert.equal(utils.fromWei(st.pledges[9].amount), 0.02); assert.equal(utils.fromWei(st.pledges[4].amount), 0.1); }); it('delegate2 assigns to projec2a', async () => { - await liquidPledging.transfer(6, 9, utils.toWei('0.01'), 5, { from: delegate2, $extraGas: 100000 }); + await liquidPledging.transfer(6, 9, utils.toWei('0.01'), 5, { + from: delegate2, + $extraGas: 100000, + }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 11); assert.equal(utils.fromWei(st.pledges[9].amount), 0.01); @@ -307,8 +348,11 @@ describe('LiquidPledging test', function () { }); it('project2a authorize to spend a litle', async () => { const n = Math.floor(new Date().getTime() / 1000); - await liquidPledging.setMockedTime(n + (86401 * 3), {$extraGas: 200000}); - await liquidPledging.withdraw(10, utils.toWei('0.005'), { from: adminProject2a, $extraGas: 200000 }); + await liquidPledging.setMockedTime(n + 86401 * 3, { $extraGas: 200000 }); + await liquidPledging.withdraw(10, utils.toWei('0.005'), { + from: adminProject2a, + $extraGas: 200000, + }); const st = await liquidPledgingState.getState(liquidPledging); assert.equal(st.pledges.length, 13); assert.equal(utils.fromWei(st.pledges[10].amount), 0); @@ -320,7 +364,7 @@ describe('LiquidPledging test', function () { }); it('Should not be able to withdraw it', async () => { await assertFail( - liquidPledging.withdraw(12, utils.toWei('0.005'), { from: giver1, gas: 4000000 }) + liquidPledging.withdraw(12, utils.toWei('0.005'), { from: giver1, gas: 4000000 }), ); }); it('Should be able to cancel payment', async () => { @@ -343,13 +387,17 @@ describe('LiquidPledging test', function () { // .substring is to remove the 0x prefix on the toHex result const encodedPledges = pledges.map(p => { - return '0x' + utils.padLeft(utils.toHex(p.amount).substring(2), 48) + utils.padLeft(utils.toHex(p.id).substring(2), 16); + return ( + '0x' + + utils.padLeft(utils.toHex(p.amount).substring(2), 48) + + utils.padLeft(utils.toHex(p.id).substring(2), 16) + ); }); await liquidPledging.mWithdraw(encodedPledges, { from: giver1, $extraGas: 200000 }); const initialBalance = await giver1Token.balanceOf(giver1); - await vault.multiConfirm([2, 3, 4, 5, 6], {$extraGas: 200000}); + await vault.multiConfirm([2, 3, 4, 5, 6], { $extraGas: 200000 }); const finalBalance = await giver1Token.balanceOf(giver1); const collected = utils.fromWei(utils.toBN(finalBalance).sub(utils.toBN(initialBalance))); @@ -359,7 +407,10 @@ describe('LiquidPledging test', function () { it('Should make a donation and create giver', async () => { const oldNPledges = await liquidPledging.numberOfPledges(); const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.addGiverAndDonate(1, giver2Token.$address, utils.toWei('1'), { from: giver2, $extraGas: 200000 }); + await liquidPledging.addGiverAndDonate(1, giver2Token.$address, utils.toWei('1'), { + from: giver2, + $extraGas: 200000, + }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 2); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -375,7 +426,9 @@ describe('LiquidPledging test', function () { }); it('Should allow childProject with different parentProject owner', async () => { const nAdminsBefore = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.addProject('Project3', 'URLProject3', adminProject3, 4, 86400, 0, { from: adminProject3 }); + await liquidPledging.addProject('Project3', 'URLProject3', adminProject3, 4, 86400, 0, { + from: adminProject3, + }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, utils.toDecimal(nAdminsBefore) + 1); }); @@ -383,23 +436,36 @@ describe('LiquidPledging test', function () { it('should throw if projectLevel > 20', async () => { let nAdmins = await liquidPledging.numberOfPledgeAdmins(); - await liquidPledging.addProject('ProjectLevel0', '', adminProject1, 0, 86400, 0, { from: adminProject1, $extraGas: 100000 }); + await liquidPledging.addProject('ProjectLevel0', '', adminProject1, 0, 86400, 0, { + from: adminProject1, + $extraGas: 100000, + }); for (let i = 2; i <= 20; i++) { - await liquidPledging.addProject(`ProjectLevel${i}`, '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1, $extraGas: 100000 }); + await liquidPledging.addProject(`ProjectLevel${i}`, '', adminProject1, ++nAdmins, 86400, 0, { + from: adminProject1, + $extraGas: 100000, + }); } await assertFail( - liquidPledging.addProject('ProjectLevel21', '', adminProject1, ++nAdmins, 86400, 0, { from: adminProject1, gas: 4000000 }) + liquidPledging.addProject('ProjectLevel21', '', adminProject1, ++nAdmins, 86400, 0, { + from: adminProject1, + gas: 4000000, + }), ); }); it('should prevent donation to 0 receiverId', async () => { - await assertFail(liquidPledging.donate(1, 0, giver1Token.$address, 1, { from: giver1, gas: 6700000 })); + await assertFail( + liquidPledging.donate(1, 0, giver1Token.$address, 1, { from: giver1, gas: 6700000 }), + ); }); it('should prevent donation from 0 giverId', async () => { - await assertFail(liquidPledging.donate(0, 1, giver1Token.$address, 1, { from: giver1, gas: 6700000 })); + await assertFail( + liquidPledging.donate(0, 1, giver1Token.$address, 1, { from: giver1, gas: 6700000 }), + ); }); it('should donate on behalf of another addy', async () => { @@ -407,7 +473,10 @@ describe('LiquidPledging test', function () { const oldNAdmins = await liquidPledging.numberOfPledgeAdmins(); const preGiver1Bal = await giver1Token.balanceOf(giver1); - await liquidPledging.addGiverAndDonate(1, accounts[8], giver1Token.$address, 11, { from: giver1, $extraGas: 200000 }); + await liquidPledging.addGiverAndDonate(1, accounts[8], giver1Token.$address, 11, { + from: giver1, + $extraGas: 200000, + }); const nPledges = await liquidPledging.numberOfPledges(); assert.equal(utils.toDecimal(nPledges), utils.toDecimal(oldNPledges) + 1); diff --git a/test/NormalizePledge.js b/test/NormalizePledge.js index 620d3a8..9d8293d 100644 --- a/test/NormalizePledge.js +++ b/test/NormalizePledge.js @@ -1,19 +1,18 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require("ganache-cli"); +const TestRPC = require('ganache-cli'); const Web3 = require('web3'); -const chai = require('chai'); -const contracts = require("../build/contracts.js"); -const LiquidPledgingState = require('../index').LiquidPledgingState; +const { assert } = require('chai'); +const { LPVault, LPFactory, LiquidPledgingState, test } = require('../index'); -const assert = chai.assert; +const { StandardTokenTest, assertFail, LiquidPledgingMock } = test; -const printState = async (liquidPledgingState) => { +const printState = async liquidPledgingState => { const st = await liquidPledgingState.getState(); console.log(JSON.stringify(st, null, 2)); }; -describe('NormalizePledge test', function () { +describe('NormalizePledge test', function() { this.timeout(0); let testrpc; @@ -48,39 +47,43 @@ describe('NormalizePledge test', function () { giver2 = accounts[6]; }); - after((done) => { + after(done => { testrpc.close(); done(); }); it('Should deploy LiquidPledging contract', async () => { - const baseVault = await contracts.LPVault.new(web3, accounts[0]); - const baseLP = await contracts.LiquidPledgingMock.new(web3, accounts[0]); - lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); + const baseVault = await LPVault.new(web3, accounts[0]); + const baseLP = await LiquidPledgingMock.new(web3, accounts[0]); + lpFactory = await LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], accounts[0]); const vaultAddress = r.events.DeployVault.returnValues.vault; - vault = new contracts.LPVault(web3, vaultAddress); + vault = new LPVault(web3, vaultAddress); const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; - liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); + liquidPledging = new LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); - token = await contracts.StandardToken.new(web3); + token = await StandardTokenTest.new(web3); await token.mint(giver1, web3.utils.toWei('1000')); await token.mint(giver2, web3.utils.toWei('1000')); - await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver1 }); - await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", { from: giver2 }); + await token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver1 }); + await token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver2 }); }); it('Should add pledgeAdmins', async () => { await liquidPledging.addGiver('Giver1', 'URLGiver1', 86400, 0, { from: giver1 }); // pledgeAdmin 1 await liquidPledging.addDelegate('Delegate1', 'URLDelegate1', 259200, 0, { from: delegate1 }); // pledgeAdmin 2 await liquidPledging.addDelegate('Delegate2', 'URLDelegate2', 0, 0, { from: delegate2 }); // pledgeAdmin 3 - await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { from: adminProject1 }); // pledgeAdmin 4 - await liquidPledging.addProject('Project2', 'URLProject2', adminProject2, 0, 0, 0, { from: adminProject2 }); // pledgeAdmin 5 + await liquidPledging.addProject('Project1', 'URLProject1', adminProject1, 0, 0, 0, { + from: adminProject1, + }); // pledgeAdmin 4 + await liquidPledging.addProject('Project2', 'URLProject2', adminProject2, 0, 0, 0, { + from: adminProject2, + }); // pledgeAdmin 5 await liquidPledging.addGiver('Giver2', 'URLGiver2', 0, 0, { from: giver2 }); // pledgeAdmin 6 const nAdmins = await liquidPledging.numberOfPledgeAdmins(); @@ -135,5 +138,5 @@ describe('NormalizePledge test', function () { assert.equal(st.pledges[5].amount, 1000); assert.equal(st.pledges[9].amount, 0); assert.equal(st.pledges[11].amount, 0); - }) + }); }); diff --git a/test/Vault.js b/test/Vault.js index 3ee983b..3980107 100644 --- a/test/Vault.js +++ b/test/Vault.js @@ -1,15 +1,13 @@ /* eslint-env mocha */ /* eslint-disable no-await-in-loop */ -const TestRPC = require("ganache-cli"); +const TestRPC = require('ganache-cli'); const Web3 = require('web3'); -const chai = require('chai'); -const assertFail = require('./helpers/assertFail'); -const contracts = require("../build/contracts.js"); +const { assert } = require('chai'); +const { LPVault, LPFactory, LiquidPledgingState, Kernel, ACL, test } = require('../index'); -const LiquidPledgingState = require('../index').LiquidPledgingState; -const assert = chai.assert; +const { StandardTokenTest, assertFail, LiquidPledgingMock } = test; -describe('Vault test', function () { +describe('Vault test', function() { this.timeout(0); let testrpc; @@ -36,95 +34,131 @@ describe('Vault test', function () { web3 = new Web3('http://localhost:8545'); accounts = await web3.eth.getAccounts(); - giver1 = accounts[ 1 ]; - adminProject1 = accounts[ 2 ]; - vaultOwner = accounts[ 3 ]; - escapeHatchDestination = accounts[ 4 ]; - escapeHatchCaller = accounts[ 5 ]; - restrictedPaymentsConfirmer = accounts[ 6 ]; + giver1 = accounts[1]; + adminProject1 = accounts[2]; + vaultOwner = accounts[3]; + escapeHatchDestination = accounts[4]; + escapeHatchCaller = accounts[5]; + restrictedPaymentsConfirmer = accounts[6]; }); - after((done) => { + after(done => { testrpc.close(); done(); }); - it('Should deploy Vault contract', async function () { - const baseVault = await contracts.LPVault.new(web3, escapeHatchDestination); - const baseLP = await contracts.LiquidPledgingMock.new(web3, escapeHatchDestination); - lpFactory = await contracts.LPFactory.new(web3, baseVault.$address, baseLP.$address); + it('Should deploy Vault contract', async function() { + const baseVault = await LPVault.new(web3, escapeHatchDestination); + const baseLP = await LiquidPledgingMock.new(web3, escapeHatchDestination); + lpFactory = await LPFactory.new(web3, baseVault.$address, baseLP.$address); const r = await lpFactory.newLP(accounts[0], escapeHatchDestination); const vaultAddress = r.events.DeployVault.returnValues.vault; - vault = new contracts.LPVault(web3, vaultAddress); + vault = new LPVault(web3, vaultAddress); const lpAddress = r.events.DeployLiquidPledging.returnValues.liquidPledging; - liquidPledging = new contracts.LiquidPledgingMock(web3, lpAddress); + liquidPledging = new LiquidPledgingMock(web3, lpAddress); liquidPledgingState = new LiquidPledgingState(liquidPledging); // set permissions - const kernel = new contracts.Kernel(web3, await liquidPledging.kernel()); - acl = new contracts.ACL(web3, await kernel.acl()); - await acl.createPermission(accounts[0], vault.$address, await vault.CANCEL_PAYMENT_ROLE(), accounts[0], { $extraGas: 200000 }); - await acl.createPermission(accounts[0], vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), accounts[0], { $extraGas: 200000 }); - await acl.grantPermission(escapeHatchCaller, vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); - await acl.revokePermission(accounts[0], vault.$address, await vault.ESCAPE_HATCH_CALLER_ROLE(), {$extraGas: 200000}); + const kernel = new Kernel(web3, await liquidPledging.kernel()); + acl = new ACL(web3, await kernel.acl()); + await acl.createPermission( + accounts[0], + vault.$address, + await vault.CANCEL_PAYMENT_ROLE(), + accounts[0], + { $extraGas: 200000 }, + ); + await acl.createPermission( + accounts[0], + vault.$address, + await vault.CONFIRM_PAYMENT_ROLE(), + accounts[0], + { $extraGas: 200000 }, + ); + await acl.grantPermission( + escapeHatchCaller, + vault.$address, + await vault.ESCAPE_HATCH_CALLER_ROLE(), + { $extraGas: 200000 }, + ); + await acl.revokePermission( + accounts[0], + vault.$address, + await vault.ESCAPE_HATCH_CALLER_ROLE(), + { $extraGas: 200000 }, + ); await liquidPledging.addGiver('Giver1', '', 0, '0x0', { from: giver1, $extraGas: 100000 }); - await liquidPledging.addProject('Project1', '', adminProject1, 0, 0, '0x0', { from: adminProject1, $extraGas: 100000 }); + await liquidPledging.addProject('Project1', '', adminProject1, 0, 0, '0x0', { + from: adminProject1, + $extraGas: 100000, + }); const nAdmins = await liquidPledging.numberOfPledgeAdmins(); assert.equal(nAdmins, 2); - - token = await contracts.StandardToken.new(web3); + + token = await StandardTokenTest.new(web3); await token.mint(giver1, web3.utils.toWei('1000')); - await token.approve(liquidPledging.$address, "0xFFFFFFFFFFFFFFFF", {from: giver1}); + await token.approve(liquidPledging.$address, '0xFFFFFFFFFFFFFFFF', { from: giver1 }); }); - it('Should hold funds from liquidPledging', async function () { - await liquidPledging.addGiverAndDonate(2, token.$address, 10000, { from: giver1, $extraGas: 100000 }); + it('Should hold funds from liquidPledging', async function() { + await liquidPledging.addGiverAndDonate(2, token.$address, 10000, { + from: giver1, + $extraGas: 100000, + }); const balance = await token.balanceOf(vault.$address); assert.equal(10000, balance); }); - it('escapeFunds should fail', async function () { + it('escapeFunds should fail', async function() { // only vaultOwner can escapeFunds - await assertFail(vault.escapeFunds(0x0, 1000, {gas: 4000000})); + await assertFail(vault.escapeFunds(0x0, 1000, { gas: 4000000 })); // can't send more then the balance await assertFail(vault.escapeFunds(0x0, 11000, { from: vaultOwner, gas: 4000000 })); }); - it('escapeFunds should send funds to escapeHatchDestination', async function () { + it('escapeFunds should send funds to escapeHatchDestination', async function() { const preBalance = await token.balanceOf(escapeHatchDestination); - await assertFail(vault.escapeFunds(0x0, 1000, { from: escapeHatchCaller, gas: 1000000})); + await assertFail(vault.escapeFunds(0x0, 1000, { from: escapeHatchCaller, gas: 1000000 })); await vault.escapeFunds(token.$address, 1000, { from: escapeHatchCaller, $extraGas: 200000 }); const vaultBalance = await token.balanceOf(vault.$address); assert.equal(9000, vaultBalance); - const expected = web3.utils.toBN(preBalance).add(web3.utils.toBN('1000')).toString(); + const expected = web3.utils + .toBN(preBalance) + .add(web3.utils.toBN('1000')) + .toString(); const postBalance = await token.balanceOf(escapeHatchDestination); assert.equal(expected, postBalance); - await token.transfer(vault.$address, 1000, {from: escapeHatchDestination, $extraGas: 200000}); + await token.transfer(vault.$address, 1000, { from: escapeHatchDestination, $extraGas: 200000 }); }); - it('should restrict confirm payment to payments under specified amount', async function () { - await liquidPledging.withdraw(2, 300, {from: adminProject1, $extraGas: 200000}); - await liquidPledging.withdraw(2, 700, {from: adminProject1, $extraGas: 200000}); + it('should restrict confirm payment to payments under specified amount', async function() { + await liquidPledging.withdraw(2, 300, { from: adminProject1, $extraGas: 200000 }); + await liquidPledging.withdraw(2, 700, { from: adminProject1, $extraGas: 200000 }); // set permission for 2nd param (p.amount) <= 300 - await acl.grantPermissionP(restrictedPaymentsConfirmer, vault.$address, await vault.CONFIRM_PAYMENT_ROLE(), ["0x010600000000000000000000000000000000000000000000000000000000012c"], {$extraGas: 200000}); + await acl.grantPermissionP( + restrictedPaymentsConfirmer, + vault.$address, + await vault.CONFIRM_PAYMENT_ROLE(), + ['0x010600000000000000000000000000000000000000000000000000000000012c'], + { $extraGas: 200000 }, + ); await assertFail(vault.confirmPayment(1, { from: restrictedPaymentsConfirmer, gas: 4000000 })); await vault.confirmPayment(0, { from: restrictedPaymentsConfirmer, $extraGas: 200000 }); }); }); - diff --git a/test/helpers/gasLogger.js b/test/helpers/gasLogger.js new file mode 100644 index 0000000..4d37abf --- /dev/null +++ b/test/helpers/gasLogger.js @@ -0,0 +1,12 @@ +let bNumber; +module.exports = (gasUsage) => (res) => { + if (res.includes('Block Number: ')) { + bNumber= res.split('Block Number: ')[1]; + } else if (res.includes('Gas usage: ')) { + const g = res.split('Gas usage: ')[1]; + gasUsage[bNumber] = g; + } else if (res.includes('Runtime Error: ')) { + // need to subtract 1 b/c gas gets printed before block number, so we are always 1 block behind + delete gasUsage[bNumber - 1]; + } +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e44b7cb..0425036 100644 --- a/yarn.lock +++ b/yarn.lock @@ -75,6 +75,13 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + JSONStream@^1.0.4: version "1.3.2" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" @@ -216,10 +223,18 @@ arr-diff@^2.0.0: dependencies: arr-flatten "^1.0.1" -arr-flatten@^1.0.1: +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -253,6 +268,14 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -287,6 +310,10 @@ assertion-error@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + ast-types-flow@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -313,6 +340,10 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +atob@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc" + aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -854,6 +885,18 @@ base64-js@^1.0.2: version "1.2.3" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" @@ -948,6 +991,21 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1072,6 +1130,24 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -1181,6 +1257,15 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -1242,6 +1327,13 @@ codecov@^2.3.0: request "2.77.0" urlgrey "0.4.4" +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + color-convert@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" @@ -1300,6 +1392,10 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1500,6 +1596,10 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" @@ -1633,7 +1733,7 @@ debug@2.6.8: dependencies: ms "2.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -1734,6 +1834,25 @@ define-properties@^1.1.2: foreach "^2.0.5" object-keys "^1.0.8" +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1791,6 +1910,13 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2080,13 +2206,7 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" -eth-contract-class@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/eth-contract-class/-/eth-contract-class-0.0.6.tgz#398b8952149cc747cb959fa8b5d480288c7a8bce" - dependencies: - web3-core-promievent "^1.0.0-beta.21" - -eth-contract-class@^0.0.8: +eth-contract-class@0.0.8, eth-contract-class@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/eth-contract-class/-/eth-contract-class-0.0.8.tgz#0ba4590e6185f156c08b7f44b0581fd8d6b7c5b0" dependencies: @@ -2171,6 +2291,18 @@ expand-brackets@^0.1.4: dependencies: is-posix-bracket "^0.1.0" +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" @@ -2212,6 +2344,19 @@ express@^4.14.0: utils-merge "1.0.1" vary "~1.1.2" +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" @@ -2230,6 +2375,19 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2242,6 +2400,16 @@ fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +fast-glob@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.1.tgz#686c2345be88f3741e174add0be6f2e5b6078889" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.1" + micromatch "^3.1.10" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -2296,6 +2464,15 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + finalhandler@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" @@ -2327,7 +2504,7 @@ for-each@^0.3.2: dependencies: is-function "~1.0.0" -for-in@^1.0.1: +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2365,6 +2542,12 @@ forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -2506,6 +2689,10 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -2571,6 +2758,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + glob@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" @@ -2618,6 +2809,18 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globby@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + got@7.1.0, got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -2742,6 +2945,33 @@ has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" @@ -2858,6 +3088,10 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +ignore@^3.3.5: + version "3.3.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2928,6 +3162,18 @@ ipaddr.js@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2958,10 +3204,38 @@ is-ci@^1.0.10: dependencies: ci-info "^1.0.0" +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -2972,15 +3246,21 @@ is-equal-shallow@^0.1.3: dependencies: is-primitive "^2.0.0" -is-extendable@^0.1.1: +is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" -is-extglob@^2.1.0: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3016,6 +3296,12 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -3050,6 +3336,10 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -3058,10 +3348,22 @@ is-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" +is-odd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + dependencies: + is-number "^4.0.0" + is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" @@ -3118,6 +3420,10 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3132,6 +3438,10 @@ isobject@^2.0.0: dependencies: isarray "1.0.0" +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + isomorphic-fetch@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" @@ -3260,7 +3570,7 @@ keccakjs@^0.2.1: browserify-sha3 "^0.0.1" sha3 "^1.1.0" -kind-of@^3.0.2: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: @@ -3272,6 +3582,14 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -3489,10 +3807,20 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + md5.js@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" @@ -3540,6 +3868,10 @@ merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge2@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.1.tgz#271d2516ff52d4af7f7b710b8bf3e16e183fef66" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -3562,6 +3894,24 @@ micromatch@^2.1.5: parse-glob "^3.0.4" regex-cache "^0.4.2" +micromatch@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -3627,6 +3977,13 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + mkdirp-promise@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" @@ -3711,6 +4068,23 @@ nano-json-stream-parser@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" +nanomatch@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-odd "^2.0.0" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -3826,10 +4200,24 @@ object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1 version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -3837,6 +4225,12 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + oboe@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.3.tgz#2b4865dbd46be81225713f4e9bfe4bcf4f680a4f" @@ -3999,6 +4393,10 @@ parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" @@ -4107,6 +4505,10 @@ pkg-dir@^1.0.0: dependencies: find-up "^1.0.0" +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -4358,6 +4760,13 @@ regex-cache@^0.4.2: dependencies: is-equal-shallow "^0.1.3" +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" @@ -4397,7 +4806,7 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" -repeat-string@^1.5.2: +repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -4498,6 +4907,10 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + resolve@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" @@ -4511,6 +4924,10 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" @@ -4550,6 +4967,12 @@ safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + scrypt.js@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada" @@ -4624,6 +5047,24 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -4679,6 +5120,33 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -4709,15 +5177,16 @@ solc@^0.4.19: semver "^5.3.0" yargs "^4.7.1" -"solcpiler@https://github.com/perissology/solcpiler.git#9862d1f": +"solcpiler@https://github.com/perissology/solcpiler.git#6393e66": version "0.0.18" - resolved "https://github.com/perissology/solcpiler.git#9862d1f09a402f93b3ba159b6fbca0d5f6c5e93b" + resolved "https://github.com/perissology/solcpiler.git#6393e6639e74946a855e2d2c4f89e9a67b8eda71" dependencies: app-root-path "^2.0.1" async "^2.5.0" eth-contract-class "^0.0.8" - glob "^7.1.2" + globby "^8.0.1" lodash "^4.17.4" + mkdirp "^0.5.1" solc "^0.4.19" web3-utils "^1.0.0-beta.30" yargs "^8.0.2" @@ -4752,6 +5221,16 @@ source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" +source-map-resolve@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + dependencies: + atob "^2.0.0" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" @@ -4764,6 +5243,10 @@ source-map-support@^0.5.0: dependencies: source-map "^0.6.0" +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" @@ -4792,6 +5275,12 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + split2@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" @@ -4818,6 +5307,13 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + "statuses@>= 1.3.1 < 2": version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" @@ -5097,6 +5593,28 @@ to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + tough-cookie@~2.3.0, tough-cookie@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" @@ -5202,6 +5720,15 @@ underscore@1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" @@ -5210,10 +5737,21 @@ unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" @@ -5239,6 +5777,12 @@ urlgrey@0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" +use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" From 98743f8e0d679f2741ba895c32a44bee022518c5 Mon Sep 17 00:00:00 2001 From: Griff Green Date: Wed, 9 May 2018 15:10:47 -0700 Subject: [PATCH 51/52] changed slack to riot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 23db338..6acfb96 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Welcome to the code for the liquidpledging contract, a new way to distribute don ### Install 1. Click **Star** on this repo near the top-right corner of this web page (if you want to). -2. Join our [slack](http://slack.giveth.io) if you haven't already. +2. Join our [Riot](http://join.giveth.io) if you haven't already. 3. Fork this repo by clicking **Fork** button in top-right corner of this web page. Continue to follow instruction steps from your own liquidpledging repo. 5. The rest of these steps must be done from your machine's command line. Clone your own "liquidpledging" repo: ``` From f8ac47a6742688c18768de2d5f7b63af6b38e17d Mon Sep 17 00:00:00 2001 From: perissology Date: Wed, 23 May 2018 07:42:28 -0700 Subject: [PATCH 52/52] update eth-contract-class --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b10c673..087b47a 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@aragon/os": "3.0.1", "async": "^2.4.0", "chai": "^4.1.0", - "eth-contract-class": "0.0.8", + "eth-contract-class": "^0.0.9", "giveth-common-contracts": "^0.4.0" } }